Eduardo Nunez returned to the majors as one of the Yankees' September callups and keyed a three-run seventh inning, helping New York to a 4-3 victory over Baltimore.

After Nunez's two-out base hit made it a one-run game and Ichiro Suzuki walked to load the bases, Derek Jeter drew another free pass to force home the tying run. J.J. Hardy then mishandled Nick Swisher's bouncer to short, allowing Nunez to cross the plate with the go-ahead run.

"It was just an outstanding job on their part, taking what they gave us, grinding out at-bats and giving us the lead," Yankees manager Joe Girardi said about his team's approach at the plate in the seventh inning.

David Robertson threw a perfect eighth and Rafael Soriano followed with a 1-2-3 ninth to secure his 35th save, as the Yankees halted a two-game skid and increased their AL East lead over Baltimore to three games. The Orioles had trimmed the margin on Friday with a 6-1 win in the opener of the three-game set.

Matt Wieters homered for Baltimore, which had won six of seven entering the contest and also had won its previous 13 one-run games.

"We had some opportunities, but we couldn't get that big two-out hit like we've been getting the past couple of weeks," Orioles outfielder Nate McLouth said.

Robinson Cano clubbed a solo homer for the Yankees, who managed only four hits and lost another player to an injury. Curtis Granderson left the contest after the second inning with a tight right hamstring. Girardi said after the game that it wasn't a strain, and he would see how Granderson feels on Sunday.

David Phelps started for New York and went just 4 2/3 innings. He walked six and allowed three runs on three hits, but was bailed out by a couple of big double plays.

"He didn't really have his curveball," Girardi said about Phelps. "He could have given up a lot more runs than he did. He did a good job."

Nick Markakis opened the game with a walk and Hardy singled to put runners on the corners before McLouth bounced into a double play that plated the game's first run.

Phelps' struggles continued into the second inning when he hit Chris Davis and walked Mark Reynolds. After a bunt advanced the runners, Manny Machado singled home a run, but Markakis grounded into a twin-killing to end the threat.

Wieters led off the fourth with his 18th homer for a 3-0 lead, but Cano sliced an 0-2 pitch into the left field seats for his 28th home run with two outs in the bottom of the inning to pull New York within two.

Baltimore starter Wei-Yin Chen (12-8) had retired the first 11 batters he faced before the Cano homer and finished the contest allowing four runs -- three earned -- on four hits with two walks and four strikeouts in 6 2/3 innings.

Chen appeared to be in control before he yielded a one-out single to Steve Pearce in the seventh. He then issued a two-out walk to Jayson Nix before Nunez's broken-bat single to center.

Nunez was sent back to the minors on May 10 after struggling in the field at the big league level. He was the designated hitter on Saturday.

"I'm excited to be back," Nunez said after the game. "I'm happy to be back and help the team win."

Pedro Strop took over for Chen after Nunez's hit and didn't retire any of the three batters he faced as the Yankees completed their rally.

Boone Logan (6-2) picked up the victory with two scoreless innings of relief.

Game Notes

The Yankees turned three double plays ... Phelps threw only 50 of his 98 pitches for strikes. He also picked off a runner ... The Orioles were 1-for-7 with runners in scoring position and stranded six ... Baltimore fell to 24-7 in one-run games. The Yankees are just 17-19 in one-run decisions ... New York also recalled catcher Francesco Cervelli and pitchers Cory Wade, Adam Warren and Justin Thomas from Triple-A Scranton/Wilkes-Barre ... Baltimore also made a few roster moves, adding outfielder Xavier Avery, catcher Luis Exposito and infielder Steve Tolleson from Norfolk. Infielder Wilson Betemit was activated off the disabled list and struck out as a pinch-hitter in the ninth.