The 24-year-old Russian, who also won a bronze Tuesday in the 100m backstroke, led until the last turn when Ryan Lochte from the United States eased past him to win the gold medal in a world record time of 1:53.94 seconds.
Vyatchanin broke the European record as he held on to clinch the bronze in a time of 1:54,93 seconds, just behind the 100m backstroke Olympic champion, Aaron Peirsol from the U.S. with a time of 1:54,33.
Lochte was also in action in the Men's 200m individual medley final when he came third behind teammate Michael Phelps who took the gold, his sixth of these Games and 12th overall, setting a new world record of 1:54,23 seconds.
Hungary's Laszlo Cseh came in second to take silver in a time of 1:56,52.
Germany took their first swimming gold of the Games, when Britta Steffen won the women's 100m freestyle final in a time of 53:12. Australia's Lisbeth Trickett took the silver in 53:16, while American Natalie Coughlin came in third.