BALTIMORE - J.J. Hardy homered, Chris Tillman won his third straight start and the Baltimore Orioles took advantage of three errors by the Kansas City Royals in a 5-3 victory Thursday night.
Manny Machado scored a run and hit an RBI single for the Orioles, whose season-high fourth consecutive win moved them eight games over .500 (21-13) for the first time this year.
Baltimore has been outhit in each of its past three games, including 7-5 in this one. The Orioles are 3-6 when outhit by their opponent.
Tillman (3-1) allowed three runs and five hits in six innings. The right-hander came in 0-2 with a 10.93 ERA in three career starts against the Royals.
Troy Patton pitched the seventh, Darren O'Day and Brian Matusz worked the eighth and Jim Johnson got three outs for his 13th save.
It was the 34th successive save opportunity converted by Johnson, tying the club record set by Randy Myers in 1997.
Alex Gordon hit his second home run in two games and Mike Moustakas went 3 for 4 with a homer for Kansas City.
Luis Mendoza (0-2) gave up five runs, three earned, and five hits in six innings for the Royals.
The game turned in the fifth inning, when the Orioles went up 5-1 with a three-run uprising fueled by three Kansas City errors and a wild pitch. After Chris Dickerson hit a leadoff double, shortstop Alcides Escobar grabbed Nate McLouth's sharp grounder and tried to get Dickerson at third, but the throw hit Dickerson to put runners at the corners.
McLouth promptly stole second, and Machado followed with a single to bring home Dickerson. Machado then stole second, and McLouth came home after Escobar couldn't handle the poor throw from catcher George Kottaras. Escobar's throw home was also off target, allowing Machado to take third, and he scored when Mendoza uncorked a wild pitch.
Baltimore took a 2-0 lead in the second when Matt Wieters led off with a single and Hardy followed with a drive just inside the left-field foul pole. It was his sixth home run of the season, the third in four games.
Mendoza didn't allow another base runner until Hardy drew a two-out walk in the fourth.
Tillman blanked the Royals on two hits through four innings, then retired the first two batters in the fifth before Gordon homered to right. That ended Tillman's run of consecutive scoreless innings at 15, a streak that began on April 27 in Oakland.
NOTES: Orioles 2B Brian Roberts will have surgery on his right hamstring Thursday, a procedure that will keep him sidelined at least an additional six weeks. He's been on the disabled list since April 5. ... Royals RHP Jeremy Guthrie (4-0) will face his former team for the first time Thursday night in the series finale. Guthrie, who's undefeated in his past 17 starts, was traded from Baltimore to Colorado in February 2012. Freddy Garcia will start for the Orioles. He replaces Miguel Gonzalez, who has been pushed back until at least Saturday because of a blister on his right thumb. ... Baltimore has won 108 games in a row when leading after seven innings.