ANAHEIM, Calif. (AP) -- Although the Indians could only manage one big inning against Jered Weaver, they still gave Zach McAllister more than enough room to get Cleveland back on track in the playoff chase.
Lonnie Chisenhall hit a two-run homer during Cleveland's four-run fourth, and McAllister pitched into the seventh inning of the Indians' 5-2 victory over Weaver and the slumping Los Angeles Angels on Monday night.
Nick Swisher homered and threw out a runner at the plate for the Indians, who won for just the fifth time in 14 games to regain ground in the AL Central.
The Indians (67-58) trail first-place Detroit by 61⁄2 games and sit 41⁄2 games out of the second wild-card spot.
Their confidence might have been shaken by their recent struggles, but it's far from broken.
"We just have to grind and battle, and hopefully this will snowball into something great for us at the end of the season," Swisher said. "This thing ain't over, no doubt about it."
McAllister (6-7) gave up five hits while striking out five, earning his second straight victory after a six-start winless stretch.
The 6-foot-6 right-hander was sharp in the opening game of the Indians' only series at the Big A this season, combining with three relievers to hold the Angels to six hits.
"You know you've got to keep it close to have a chance against a pitcher like (Weaver)," McAllister said. "Having that big inning was huge, and we were able to take it from there."
Before Mark Trumbo's ninth-inning homer, Los Angeles managed to get just three runners in scoring position -- all in the fourth inning. McAllister went nearly 11 weeks between victories before last week's win at Minnesota.
Weaver (7-7) allowed eight hits and four runs over six innings in his second straight loss for the Angels. Los Angeles' longtime ace got into serious trouble only in the fourth, but the Indians didn't need any more.
"Things just got away from me a little bit," Weaver said. "I was feeling good all night, and my location was good, but I just had one blowup inning and it ended up being the difference in the game."
Jason Kipnis led off the fourth with a walk, stealing second and scoring on Carlos Santana's single. After Jason Giambi's sacrifice fly, Chisenhall ended an 0-for-12 skid by putting his seventh homer of the season into the elevated stands in right field.
"I thought tonight was the best game of baseball we've played in a while," Cleveland manager Terry Francona said. "Weaver's velocity isn't what it was, but he still knows how to pitch. Just really a veteran pitcher that knows what he's doing. We put together one good inning, but we kept after him, made him work hard."
Los Angeles responded to Cleveland's rally with a run on Trumbo's single later in the fourth, but Swisher threw out Trumbo at the plate on Chris Nelson's fly to medium right field.
Angels manager Mike Scioscia argued catcher Yan Gomes didn't tag Trumbo, but replays were unclear.
Swisher, who had two hits, connected off Kevin Jepsen in the ninth for his 14th homer.
Trumbo drove in both runs for the Angels, who have lost 11 of 15.
Mike Trout sat out to rest his right hamstring for the Angels, who learned before the game they'll be without Albert Pujols for the rest of the season.
Los Angeles is shutting down the $240 million slugger who partially tore the plantar fascia in his left foot last month.
"You try not to chalk it up to any kind of excuses," Trumbo said. "(Injuries aren't) really an excuse, but it's definitely a lot more easy to come to terms with, when you think about how many quality players have missed a significant amount of time."
Trumbo hit his 29th homer off Indians closer Chris Perez, connecting in his third straight game for the fifth time in his career.
Trout was held out of the Angels' starting lineup after he felt tightness in his right hamstring while running out a double in Sunday's loss to Houston.
The All-Star outfielder has reached base in 40 consecutive games, the longest active streak in the majors and the second-longest in team history.
Peter Bourjos started in Trout's absence, but the speedy outfielder went hitless and dropped to 0 for 12 since returning from a lengthy absence with a broken right wrist.
RAYS 4, ORIOLES 3
BALTIMORE -- Evan Longoria and Matt Joyce homered, David Price grinded through five challenging innings to win his fourth straight decision and the Tampa Bay Rays beat the Baltimore Orioles 4-3 Monday night in a duel between AL contenders.
Joyce hit a two-run drive in the fourth to break a tie and push the Rays toward their fifth win in six games. Tampa Bay moved within a half-game of the first-place Red Sox in the AL East, pending Boston's late game in San Francisco.
RANGERS 16, ASTROS 5
ARLINGTON, Texas -- Leonys Martin and Elvis Andrus each scored three runs for Texas, including twice each in an 11-run inning that was the biggest in the majors this season, and the Rangers beat the Astros.
All nine Rangers scored in the third, when they sent 15 batters to the plate and had seven hits -- six singles and a double -- along with three walks, two Houston errors and a sacrifice bunt. Only five of the 11 runs were earned.
Matt Garza (3-1) struck out eight in 6 2-3 innings. But the right-hander allowed five runs, becoming the first Texas starter in 22 games to allow more than four.
ATHLETICS 2, MARINERS 1
OAKLAND, Calif. -- Brandon Moss hit a solo home run over the center-field fence with one out in the ninth inning, lifting the Athletics over the Mariners.
Jarrod Parker (9-6) pitched his first career complete game, allowing eight hits. He struck out eight, did not walk a batter and threw 100 pitches.
METS 6, TWINS 1
MINNEAPOLIS -- Dillon Gee pitched into the eighth inning for the Mets in a victory over the Twins in a makeup game from April 14.
Gee (9-8) turned in yet another quality start, and the offense for the Mets was about as balanced as could be with RBI singles by Eric Young, Daniel Murphy, Andrew Brown, Wilmer Flores and Omar Quintanilla. All five of them had two hits, as did Marlon Byrd, who hit his 20th home run.
MARLINS 6, DODGERS 2
MIAMI -- Jose Fernandez bested Yasiel Puig and led the Miami Marlins over the Los Angeles Dodgers 6-2 Monday night.
Fernandez (9-5) allowed only one earned run in six innings, handing the NL West-leading Dodgers consecutive losses for the first time since June 20-21.
CARDINALS 8, BREWERS 5
MILWAUKEE -- Matt Carpenter hit an RBI single with two outs in the eighth inning, putting the St. Louis Cardinals ahead during a four-run rally against Milwaukee.
The Cardinals got seven of their 16 hits in the big inning, capped by pinch-hitter David Freese's two-run double. St. Louis won for the ninth time in 11 games.
PHILLIES 5, ROCKIES 4
PHILADELPHIA -- John Mayberry Jr. and Carlos Ruiz each homered to lead Philadelphia past Colorado, giving the Phillies and interim manager Ryne Sandberg two straight wins for the first time since the All-Star break.
CUBS 11, NATIONALS 1
CHICAGO -- Nate Schierholtz homered twice and drove in a career-high six runs, powering Jeff Samardzija and the Chicago Cubs past Washington.
Schierholtz connected for a three-run shot in the first and a two-run drive in the seventh in his fourth career multihomer game. He also had an RBI double in the third in Chicago's highest-scoring game since a 14-6 victory over Houston on June 23.
PIRATES 3, PADRES 1
SAN DIEGO -- Francisco Liriano struck out a season-high 13 and Pedro Alvarez hit his NL-leading 31st home run to lead the Pittsburgh Pirates past San Diego.
The Pirates, who had lost seven of nine coming in, maintained a one-game lead in the NL Central over St. Louis.
RED SOX 7, GIANTS 0
SAN FRANCISCO -- Jon Lester pitched into the ninth for his first victory in four tries this month, and the AL East-leading Boston Red Sox beat San Francisco after flying cross-country earlier in the day.