NEW YORK (AP) — By the time Wade Davis was done for the night, the New York Yankees' hitting woes were over.

Robinson Cano cracked a three-run homer, Lyle Overbay added a grand slam and New York snapped out of its offensive funk with an 8-1 victory over Davis and the Kansas City Royals on Wednesday.

"I fell behind when I was in the stretch with runners on. I left bad pitches up in the zone," Davis said.

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.

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

With two outs in the third, Cano stayed back on a 1-1 breaking ball and drove it just over the left-center fence to make it 4-0. 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 to the opposite field in left for his fourth career slam and first since May 10, 2006, with Toronto.

"I made a good pitch, but it was a little bit up over the plate," Davis said. "I've had success against him in the past with that pitch and he just hit it this time."

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.

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.

"He was excellent," Yost said. "Outstanding fastball that he kept down and his curveball was the best we've seen all year."

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

"I feel like we stung a few balls but right at people, so we have nothing to show for it. We just have to bounce back tomorrow," Kansas City outfielder Lorenzo Cain said.

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

It wasn't all good news for the Yankees. Depleted by injuries all season, New York had two more players get banged up in slumping Travis Hafner and speedy Brett Gardner.

Page 2 of 2 - Hafner came out of the game 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.

Hafner got hurt while swinging in the indoor cage during the middle innings. He cranked the pitching machine up near 100 mph and fouled one off his foot.

"Just kind of a freak incident," Hafner said, adding he thinks he should be all right. "That's a first."

Gardner also walked twice and scored two runs. He reached base all four times from the leadoff spot.

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

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.

Helped by Luis Cruz's diving grab at third base, Nova 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 by Cain 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.

In the end, it was New York's offensive outburst against Davis that made it an easy night.

"We needed that really bad," Cano said.

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, Yost said. ... 2B Johnny Giavotella went 1 for 4 on his 26th birthday. ... 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.