Cano also had a single as Seattle banged out 17 hits. Ben Gamel (four singles) and Kyle Seager (three singles, home run) also had a productive night while Mike Zunino homered.
It was more than enough for Mariners starter Ariel Miranda, who allowed just two hits over seven scoreless innings. He improved to 4-0 against Los Angeles in five career starts, including a victory earlier this season.
Miranda (7-4) struck out four and walked two while making 95 pitches.
Angels starter Parker Bridwell (2-1) was done in by one bad inning -- the fifth, when the Mariners scored four runs, the big blow coming on Cano's three-run homer. Bridwell managed to last six innings, giving up five runs on 11 hits and one walk.
Cano homered again in the seventh inning, a two-run shot off Angels reliever Yusmeiro Petit.
Zunino's one-out home run in the third inning off Bridwell gave the Mariners a 1-0 lead before they broke the game open in the fifth.
Jarrod Dyson led off the inning with a double and scored on a double by Jean Segura. After Gamel singled, Cano came up with the big hit, a three-run homer, his 15th of the season that made it 5-0.
Meanwhile, Miranda didn't allow a hit until Kole Calhoun led off the fourth inning with a bloop single. But Calhoun was immediately erased when Albert Pujols grounded into a double play.
Andrelton Simmons led off the fifth with a double for the Angels second hit and moved to third on a groundout, but was left stranded.
NOTES: The Angels acquired INF/OF Nick Franklin from the Milwaukee Brewers in a trade for a player to be named or cash considerations. Franklin, who is expected to be activated to the roster Saturday, hit .195 with two homers and 10 RBIs in 53 games for Milwaukee this season. ... Angels RHP Brooks Pounders was called up from Triple-A Salt Lake, taking the spot of LHP Jose Alvarez, who was optioned to Salt Lake. Alvarez, who was the only lefty in the bullpen, was 0-3 with a 5.40 ERA in a staff-high 40 games. ... Mariners DH Nelson Cruz went 1-for-5 with a double, extending his homerless streak to 21 games. His last home run came on June 4, but his 14 homers trail only 2B Robinson Cano (16) for the team lead. Despite the home run drought, Cruz still ranks second in the American League with 59 RBIs. ... Mariners LF Ben Gamel went 4-for-5, closing out the month of June with a .393 average (42-for-107), second best in the majors for the month and tops in the American League.