Michael Phelps won the men's 200 individual medley for record 16th Olympic gold, 20th overall.
Ryan Lochte came in second in the showdown.
For his first individual gold of the London Olympics, Phelps clocked 1 minute, 54.27 seconds for his record 20th career Olympic medal and 16th gold.
Lochte touched in 1:54.90 to take the silver medal and Laszlo Cseh of Hungary was third in 1:56.22.
Lochte was hoping to pull off an impressive double, swimming the finals of the 200 backstroke and 200 individual medley about a half-hour apart. He didn't get off to a good start, fading in his first race to a bronze medal in the back.
The U.S. team still picked up its second gold medal of the night and 10th at the Olympic pool when Tyler Clary rallied on the final lap to pull off the upset in an Olympic-record 1:53.41.
Japan's Ryosuke Irie also got by Lochte on the final stroke, taking silver in 1:53.78. Lochte's time of 1:53.94 was good enough for his fourth medal of the London Games, but that's far from the dominant meet he predicted.
Last year, Lochte looked as though he had surpassed Michael Phelps at the top of the swimming world when he captured five gold medals at the world championships. The Floridian won't come close to that at the Olympics.
In Soni's race, South Africa's Suzaan van Biljon led at the first turn, but the American quickly seized control on the second lap. She was comfortably ahead by the second turn, then turned on the speed to beat her own record.
"It's been my goal since I was a little kid to go under 2:20," Soni said. "That's when my coach told me you're going to be the first woman to go under 2:19. I've been chasing it ever since. I'm just so happy."
The same couldn't be said of Lochte, who failed to defend his Olympic title in the 200 backstroke, then tried to pull himself together to face Phelps in the second of their head-to-head showdowns.
Lochte won the first with a dominating performance in the 400 individual medley on the opening night of swimming, but he hasn't been the same since then. He failed to hold on in the anchor leg of the 4x100 freestyle relay, leaving the Americans with a silver, and he finished fourth -- off the medal podium -- in the 200 free.
A relay gold in the 4x200 free made him feel better, but he was facing his rested rival in the 200 IM. Phelps was trying to win his 20th career medal and first individual gold of the London Games.