NEW YORK — Robinson Cano hit a three-run homer, Lyle Overbay added a grand slam and the New York Yankees snapped out of their offensive funk with an 8-1 victory over the Kansas City Royals on Wednesday night.

Ivan Nova delivered another impressive pitching performance and the Yankees, held to one run each of the previous three days, stopped a three-game slide. They watched two more players get banged up, though, when slumping Travis Hafner and speedy Brett Gardner left with injuries.

Hafner came out with a bruised left foot, while Gardner departed with a bruised right leg after getting hit by a pitch for the second time. The team said X-rays on both were negative and they were day to day.

Gardner reached base all four times from the leadoff spot, including a pair of walks, and scored two runs.

Nova (4-2) yielded only four singles and a double in eight innings for his second win in three solid starts since returning from the minors. He struck out six and walked two.

The right-hander was coming off his first career complete game, a three-hitter against Baltimore last Friday that included 11 strikeouts.

Cano and Overbay both connected off Wade Davis (4-8), who dropped his third consecutive start.

With the Yankees still waiting for injured stars Derek Jeter, Curtis Granderson and Alex Rodriguez to return, manager Joe Girardi said he wasn't particularly tempted to shuffle his makeshift lineup in an attempt to spark the offense.

"What would you suggest?" he asked a reporter before the game. "This is what it is."

No changes necessary on this night.

Gardner drew a leadoff walk in the first and scored on a wild pitch. When catcher George Kottaras' hurried flip sailed past Davis covering home, Ichiro Suzuki also tried to score all the way from second.

First baseman Eric Hosmer, however, scooped up the ball beside the mound and threw out Suzuki. Davis made way at the last minute for Kottaras, who blocked the plate nicely.

With two outs in the third, Cano stayed back on a 1-1 breaking ball and drove it just over the left-center fence. It was the 21st homer of the season for Cano, the American League captain for the Home Run Derby next Monday night across town at Citi Field.

Cano singled to start the sixth and New York loaded the bases with none out for Overbay. He lofted a full-count pitch a few rows deep in left for his fourth career slam and first since May 10, 2006, with Toronto against Oakland's Joe Blanton.

Davis crouched in disappointment next to the mound and was pulled from the game. He allowed eight runs, matching a career high, and six hits in his second ineffective start this season against the Yankees. They tagged him for seven runs and seven hits May 10 during a three-game sweep in Kansas City.

Meanwhile, Nova was cruising thanks to a 93-95 mph fastball and sharp curve. Helped by Luis Cruz's diving grab at third base, he retired 12 straight before loading the bases with two outs in the fifth. After a visit from pitching coach Larry Rothschild, the right-hander set down Alcides Escobar on a shallow fly.

Cano doubled off the very top of the right-center wall in the seventh, but was thrown out trying to stretch it into a triple.

Cano also had some fun with double-play partner Eduardo Nunez on a second-inning popup that was caught by the shortstop on Cano's side of second base. Cano casually folded his arms in mock disbelief as the ball descended and then shot Nunez a nasty look before cracking a smile.

Hosmer hit an RBI double with two outs in the eighth.

NOTES: All-Star C Salvador Perez was rested by the Royals in favor of Kottaras. After getting hit by a couple of foul balls, Perez is playing through a bone bruise and muscle bruise in his calf that cause tightness. The team is trying to monitor Perez's play and give him a break every few days to prevent a more serious injury, manager Ned Yost said. ... 2B Johnny Giavotella turned 26. ... RHP Ervin Santana (5-5, 2.90 ERA) faces Yankees LHP Andy Pettitte (6-6, 4.37) in the series finale Thursday afternoon. Pettitte is 15-3 with a 3.40 ERA against Kansas City, including 10-0 in 14 starts since Sept. 4, 2000. ... Rodriguez (hip surgery) went 1 for 3 with an RBI single as the DH for Class-A Tampa, making him 2 for 15 during his rehab assignment. It was his first RBI in six minor league games. Rodriguez said he'll play third base Thursday for Tampa and then get a day off Friday — leaving him free for a scheduled meeting with baseball's Biogenesis investigators. ... Yankees RHP David Phelps, on the DL since last Friday, said he's a lot less concerned about his strained right forearm since an MRI showed no problems with his elbow. Phelps said his arm feels great and he will start throwing again Monday in Tampa, Fla. "We don't expect it to be a real long time," Girardi said.