China's Wu Peng used an impressive finishing kick to beat Michael Phelps in the 200-meter butterfly at the Charlotte UltraSwim Grand Prix meet.
Wu passed both Phelps and Sebastien Rousseau and touched the wall in one minute, 56.69 seconds. American Phelps finished second in 1:56.87 while South Africa's Rousseau was third in 1:57.54.
Wu will be chasing his first Olympic medal in the event at the London Games.
"I was satisfied with my performance," Wu said. "If I just get any medal in London, I will be happy. Everyone wants to beat Michael because Michael is the fastest swimmer in the world. But I really just want to be top three."
Wu led Phelps at the first turn, then fell behind both Rousseau and Phelps before finding another gear at the finish.
Phelps also placed second in the 200m freestyle in Charlotte.
"This is not the Olympic Games. It's a stepping stone heading in the right direction for the end result," said 14-time Olympic gold medallist Phelps.