Phelps, whose record 22 Olympic medals include an astonishing 18 golds, was beaten in the 100m butterfly final at the Mesa Grand Prix by old foe Ryan Lochte.
Lochte led at the 50m mark and held on to win in 51.93sec -- second-fastest in the world this year -- while Phelps was second in 52.13, matching the fourth-fastest time of 2014.
"I did what I wanted to do," said Phelps, adding he'd targeted a time of about 52 seconds.
Lochte, whose most memorable duels with his US Olympic teammate have come in individual medley races, was thrilled to line up against Phelps again.
More From This Section
"I probably wouldn't have gone that time if Phelps wasn't in there," Lochte said. "I'm glad he's back.
"Him leaving, it kind of broke my heart a little. Racing against him is so much fun."
- Game face -
=============
Phelps had made it look easy in posting the fastest time of the heats on Thursday morning at Skyline Aquatic Center in suburban Phoenix, Arizona.
"I felt like a summer league swimmer today," Phelps said after the heats. "I felt like I should have my heat and lane number written on my hand in case I forget it."
But by the time the final rolled around, Phelps had his game face on, seemingly oblivious to the cheers of the sell-out crowd of 1,200.
"I was more serious tonight than I was this morning," Phelps said. "I knew what I wanted to do."
He wasn't too quick off the blocks, and said his turn was "probably the worst" of his career.