Robinson Cano and Curtis Granderson each hit two-run homers off Jerome Williams on Saturday, leading the New York Yankees to a 5-3 victory over the Los Angeles Angels.

Freddy Garcia and three relievers kept Mark Trumbo in the ballpark, denying him a homer in a record sixth straight game against the Yankees.

Nick Swisher, who appeared to rob Trumbo of a second long ball Friday night in helping New York rally late for a win, made another leaping catch at the right-field wall. His flashy grab of Howie Kendrick's drive to end the fifth inning, however, would have landed on the warning track.

Cano added an RBI single that bounced high off second base in the sixth to help the Yankees secure a second straight winning season against their nemesis. The victory improved their record against the Angels to 5-3 this year with one more game to go. Prior to their 5-4 mark in 2011, New York had not won a season series against the Angels since 2003.

Cano's two-out drive in the first off Williams (6-6) hit off the top of the wall in left-center and bounced into the Angels' bullpen and made it 2-all. Cano's 21st homer gave him a 17-game hitting streak.

Granderson connected for his 24th home run with one out in the third after Chris Stewart singled leading off.

Cody Eppley, David Robertson and Rafael Soriano combined for four innings of two-hit ball. Soriano struck out Albert Pujols to finish off a perfect ninth and notch his 22nd save in 23 chances.

Activated from the disabled list before the game, Williams gave up five runs and seven hits in six innings. He hadn't pitched since June 18. Right after being pulled from that outing, Williams experienced dizziness and shortness of breath from a suspected asthma attack that landed him in the hospital.

Garcia (4-2) labored through five innings, walking a season-high five, allowing five hits and throwing 98 pitches. It was his shortest start in three outings since moving back into the rotation when Andy Pettitte broke his leg.

The right-hander walked the leadoff batter in each of the third through fifth innings yet only gave up one run in that span, on Bobby Wilson's grounder to shortstop in the fourth. The Angels stole three bases in that inning, two by Mike Trout.

With those steals, Trout became the first Angels rookie since Chad Curtis in 1992 to reach 30 steals.

Garcia played it safe with Trumbo in the first and Alberto Callaspo made him pay. With two outs and runners on second and third, Trumbo walked to load the bases. Callaspo followed with a two-run single.

Trumbo became the first player to homer in five straight games against New York since Albert Belle in 1994 when he hit a three-run shot Friday. He was 0 for 3 with a walk Saturday.

NOTES: The Angels had optioned LHP Brad Mills to Triple-A Salt Lake to make room for Williams. ... Yankees RHP Joba Chamberlain (ankle) struck out two in a two-inning rehab outing for the team's rookie club in the Gulf Coast League. ... Yankees LHP CC Sabathia (groin) played catch Saturday and said he felt good and was still on track to start Tuesday against Toronto. ... The Yankees improved to 55-61 against the Angels since 2000.