Hayward's blast broke a 3-3 tie and Upton followed by clouting a pitch deep into the left field stands for his eighth round-tripper of the year.
One out later, Uggla followed with the third homer of the inning off Kelvin Herrera (1-1).
Juan Francisco supplied two more solo shots for Atlanta, which has posted its longest winning streak since a 15-gamer in 2000.
Reliever Eric O'Flaherty (3-0) got the decision after starter Kris Medlen yielded just one earned run on six hits over seven innings.
Chris Getz went deep for the Royals.