Cruz's home runs came at opportune times, a tying blast in the first, then a go-ahead round-tripper in the fourth. It was the designated hitter's 24th career multi-homer game, as well as his first since last August against Oakland.
"He's certainly in a really good groove right now," Mariners manager Scott Servais said. "Hopefully we can ride it for as long as we can."
Cruz has now homered in four of his last six games. The first-inning home run left Cruz's bat at 114.6 mph, not only Cruz's hardest-hit blast tracked by Statcast™ this season, but by any member of the Mariners. At 437 feet, it was also the second-longest shot by Cruz so far in 2018.
The victory pushed Seattle (42-24) a half-game over Houston on top of the American League West standings. The Angels (37-30) lost their second straight after winning their previous six -- squandering a two-homer night by Mike Trout along the way.
LeBlanc (2-0) allowed two runs on four hits and two walks. He struck out five.
Edwin Diaz pitched the ninth for his 24th save of the season.
As good as Cruz was, he was quick to point to the pitching.
"The pitching is the one who got us here," Cruz said. "I think we score enough to be able to win most of the games. We just find a way to scratch runs."
Andrew Heaney (3-5) took the loss, allowing five earned runs in three-plus innings.
Trout launched a towering solo shot in the first inning. Albert Pujols added another solo homer later in the inning.
But the Mariners turned things around quickly as Cruz hammered Heaney for a tying two-run bomb in the first inning.
Cruz then ignited a rally with a solo shot to dead center in the fourth -- his 15th homer of the year -- and Ryon Healy followed that with a two-run blast later in the inning as the Mariners grabbed a 5-2 lead.
LeBlanc snuffed out a would-be Angels rally in the fifth with a bit of clutch pitching. A leadoff walk to Jabari Blash and a one-out double by Martin Maldonado put runners on second and third.
The left-hander got Ian Kinsler to hit a fly to shallow right, not deep enough to score Blash. Then, after an intentional walk to Trout, LeBlanc got Justin Upton swinging to end the inning, as he was coming up on his pitch count for the night.
"I've had a lot of at-bats against Upton and been able to execute some pitches against him," LeBlanc said. "I appreciate the confidence that I could do it again."
Trout added another home run in the eighth inning for Los Angeles, his 21st of the season to tie for the MLB lead.
MOMENT THAT MATTERED Mariners left fielder Denard Span probably saved a run with a diving grab of Jose Fernandez's fading fly in the fourth inning. With Upton on first base, Fernandez hit a fly into the left-field gap, tailing away from center fielder Guillermo Heredia. But Span snared the flare to end the inning still tied at 2.
SOUND SMART The Mariners might have been onto something when they moved LeBlanc to the rotation earlier this season. Since taking a starting role, LeBlanc has gone 2-0 with a 2.45 ERA in 40 1/3 innings -- well under his career ERA of 4.28. He also extended his unbeaten streak as a starter to 16 straight starts -- the fifth-longest such stretch since 1920.
HE SAID IT "I think we'll look up at the end of the year and we'll get a typical Nelson Cruz year here. He was off to a slow start early, everybody was all, where is this going? But he's righted the ship." -- Servais, on how the streaking Cruz has recovered from a slow start
UP NEXT Since losing to the Angels on May 4, Mike Leake has gone 3-0 with a 2.79 ERA in six starts, all Mariners wins. He has 24 strikeouts and two walks in 42 innings in that span and is coming off an eight-inning, two-run outing at Tampa Bay. He'll face off with Angels rookie righty Jaime Barria on Tuesday night, with first pitch set for 7:10 p.m. PT.
Rob Shore is a contributor to MLB.com based in Seattle.