SAN FRANCISCO -- Royals slugger Mike Moustakas didn't care to get caught up in a debate concerning whether or not his latest home run landed in the waters of McCovey Cove.
With Kansas City finally finding a comfortable groove after a rocky start to the season, Moustakas is thinking big picture.
Moustakas hit his 18th home run leading off the second inning, Jorge Bonifacio and Lorenzo Cain followed with back-to-back shots in the third and the Royals beat the San Francisco Giants 7-2 on Wednesday to complete a two-game sweep.
The win was Kansas City's fourth straight and left the Royals at 30-34 - not bad for a ballclub that was nine games under .500 one month into the season.
"We're trending in the right direction," Moustakas said. "We've been playing great baseball on this road trip and if we keep this going we're going to be in a good spot after the end of this month."
Moustakas, one of Kansas City's top hitters over the past two weeks, stayed hot with his home run off former Royals pitcher Johnny Cueto (5-6) that initially appeared to land in McCovey Cove. Officials later determined that the ball landed on a walkway and bounced into the water.
It was the fifth homer in 12 games for Moustakas, who is already just four shy of his career-high.
"It's all good, a homer's a homer," Moustakas said.
Bonifacio finished with two hits and three RBIs, Whit Merrifield added three hits and three runs while Alcides Escobar singled three times to help Jason Hammel end an eight-game winless stretch on the road that dated to 2016.
Hammel (3-6) allowed one run over 6 2/3 innings to beat the Giants for the first time in 12 starts. The right-hander gave up eight hits, struck out four and walked one.
"He commanded the ball really well, he changed speeds, he used his slider effectively, got some big swings and misses," Royals manager Ned Yost said. "His last couple of starts, he's really come on for us."
Bonifacio homered in the third after Merrifield opened the inning with a bunt single. Two pitches later, Cain lined an 0-1 pitch over the fence in left-center that put the Royals up 4-0.
Cueto struggled in his first appearance against his former team since signing with San Francisco after helping Kansas City to the 2015 World Series. He allowed five runs and 10 hits over 5 2/3 innings with three walks and five strikeouts.
Kansas City has scored seven or more runs in each of its last four games, all wins.
Eduardo Nunez had two hits and an RBI for San Francisco. The Giants have lost 11 of 15.
San Francisco had two on and two outs twice but failed to score each time. Hammel fanned Brandon Crawford to end the fourth and reliever Peter Moylan got Buster Posey to ground out to end the seventh.
"The way we're swinging, it's a steep climb," San Francisco manager Bruce Bochy said. "This is humbling to go through something like this. It's a tough time for these fellows."
Brandon Belt's walk in the seventh inning was the first free pass issued by Hammel since May 29. It also was the last batter the right-hander faced, as Yost came scurrying out of the dugout to replace him with Moylan. Hammel hardly resisted. "I don't ever want to say I was getting tired but that inning the pitches were up," he said. "Probably the right move there."
Giants: 2B Joe Panik returned to the lineup after being sidelined for four games with a sprained left thumb he injured last week in Milwaukee diving for a ground ball. He went 2 for 4.
Royals: LHP Matt Strahm (1-3, 4.05) makes his first career start Thursday in Anaheim against the Angels. Strahm has made 20 appearances out of the bullpen this season.
Giants: LHP Matt Moore (2-7, 5.28) faces the Rockies for the third time this season when the teams play at Colorado in the opener of a four-game series Thursday. Moore is winless in his previous five starts.