Reyes' 430-foot blast to center opened the scoring in the first. His two-run single in the sixth extended the Indians' lead to 8-1. José Ramirez tacked on a solo homer off José Quijada in the eighth for his team-high 28th of the season.
"I got my confidence back as soon as I hit that home run," said Reyes, who had two hits in his previous 35 at-bats. "I know I was hitting the ball well, but it seemed like everything was a ground ball before, so that homer felt great. Now, I feel powerful and stronger at the plate."
David Fletcher singled in Kurt Suzuki in the third for the Angels, and All-Star Shohei Ohtani went 1 for 4 and reached on an error. Los Angeles fell to .500 and is eight games out of the final AL wild-card position.
Rookie Trevor Stephan (2-0) worked a season-high three scoreless innings, allowing one hit without a walk. Converted reliever Sam Hentges started for the Indians, giving up one run in four innings, and Blake Parker and Justin Garza wrapped up the four-hitter.
"Hentges was good, but that second kid (Stephan) threw the ball really well and really put the game in order for them," Angels manager Joe Maddon said.
Leadoff hitter Myles Straw had three hits and three runs for Cleveland, which won for just the 18th time in 48 games since June 25. Bradley Zimmer singled home Ramirez as part of a three-run sixth against Junior Guerra.
Reyes, Ramirez, Amed Rosario and Daniel Johnson each had two hits in the opener of the Indians' nine-game homestand. Suzuki also had two hits on a single and double for Los Angeles.
"You've got to find a way to push yourself at this stage of the season," Cleveland acting manager DeMarlo Hale said. "Maybe the off day yesterday helped us tonight, but I think our guys have done a good job."
The Indians scored five runs in the first two frames off Jaime Barria (2-2), including back-to-back RBI doubles by Straw and Rosario in the second. Barria is 0-2 with a 9.28 ERA in three career starts at Progressive Field.
Jose Marte became the 55th player to appear in a game for the Angels this season, striking out four in two scoreless innings. The right-hander made his big league debut after beginning the season at High-A in the Giants' system.
"Marte went out and showed us what we were told he could do," Maddon said. "It's fun to watch all these young guys play every day."
Angels OF Mike Trout, who has been sidelined since May 18 with a strained right calf, worked out at Progressive Field before the game. The three-time AL MVP will go on a rehabilitation assignment prior to being activated, but Maddon might limit his time in center field when he returns. "I'll talk to Mikey again when he's ready to roll," Maddon said. "We'll discuss different options when he gets some rehab games in."
Indians: RHP Shane Bieber (right shoulder strain) threw fastballs and curveballs in a session at the ballpark. The 2020 AL Cy Young winner, who has been on the injured list since June 14, is slated to add pitches and continue building volume Tuesday. ... RHP Aaron Civale (right third finger sprain) also tossed a bullpen in preparation for a minor league rehab assignment that could begin Sunday.
Angels: LHP Reid Detmers (1-2, 7.04 ERA), who made his major league debut Aug. 1 against Oakland, starts for the fourth time. The prospect earned his first win against Houston on Aug. 15, allowing one earned run in six innings.
Indians: RHP Triston McKenzie (2-5, 5.12 ERA) came within four outs of throwing a perfect game in his last start at Detroit on Aug. 15. He struck out a career-high 11 and gave up one hit over eight innings to pick up the victory.
Franmil Reyes crushes 430-foot, 3-run homer in 1st inning
Franmil Reyes' towering home run to left-center puts the Indians up 3-0 in the first inning against the Angels.