Kansas City (42-39), which had lost seven of nine games since winning 10 in a row, hid the midway point of the year 3 1/2 games back of American League Central leader Detroit.
Infante went 3 for 5, while Lorenzo Cain went 4 for 5 in his fourth multi-hit game since moving to the leadoff spot last Sunday.
The Angels (45-35) scored the first three runs of the game, starting when Kole Calhoun sent the second pitch from Jeremy Guthrie over the bullpen in right.
The Royals took the lead with a four-run fourth inning, highlighted by Cain's tying two-run double of C.J. Wilson. Danny Valencia began the frame with a run-scoring single to left, while Wilson walked Gordon to put Kansas City up 4-3.
Eric Aybar knotted it again with another solo shot of Guthrie in the sixth. The Royals starter gave up eight hits and struck out four over 6 2/3 innings.
Greg Holland (1-2) struck out two batters in a scoreless ninth to earn his first win.
Copyright 2016 Nexstar Broadcasting, Inc. All rights reserved. This material may not be published, broadcast, rewritten, or redistributed.