Alfonso Soriano also had a pair of hits and an RBI. Darwin Barney, Starlin Castro and Brian Bogusevic drove in one run apiece for the Cubs, who have won four of five.
Chicago starter Edwin Jackson (4-10) allowed three runs on seven hits over six-plus innings.
"He did what we wanted him to do today," Cubs manager Dale Sveum said of Jackson. "Six innings, gave up three and it was nice to get off and swing the bats real well."
Kyle Seager had a two-run home run while Jason Bay and Raul Ibanez each hit a solo shot. Nick Franklin drove in two runs for the Mariners, who saw starter Jeremy Bonderman (1-2) last just 3 1/3 innings, surrendering six runs -- four earned -- on six hits and two walks.
"Just never really got anything going," Bonderman said of his outing. "It was a battle all day and just not exactly what I was anticipating."
The Cubs got on the board with three runs in the second. Soriano hit a leadoff double and scored on a double to right by Rizzo. After Dioner Navarro grounded out, Bogusevic and Barney delivered back-to-back RBI doubles.
In the third, Henry Blanco singled and Endy Chavez ripped a double to left. Franklin grounded out to second to bring Blanco home.
The Mariners had an opportunity to score more with Chavez at third, but Ibanez struck out to end the inning.
The Cubs scored four runs in the fourth to widen the gap.
Barney doubled to left to begin the inning and scored after Welington Castillo hit a line drive to Seager, who was unable to make the grab. Luis Valbuena grounded out, but Castro plated Castillo with a base hit up the middle.
Blake Beavan came on in relief for the Mariners. After Nate Schierholtz flew out, Soriano smacked an RBI double to left center and scored on a single to left by Rizzo.
However, Seattle slowly clawed its way back.
Franklin hit a two-out RBI single in the fifth, scoring Brad Miller, who doubled to lead off.
Bay hammered a 3-2 slider to center to begin the seventh.
Ibanez's solo shot started the eighth. After Kendrys Morales hit an infield single, Seager smashed a 1-2 sinker that sailed into the stands in right, bringing the Mariners within one.
They had a chance to take the lead after Bay and Miller drew walks but pinch- hitter Mike Zunino fouled out and Chavez grounded out, ending the rally.
Kevin Gregg threw a 1-2-3 ninth to notch his 13th save.
Soriano had two doubles, bringing him to 21 for the season ... Ibanez has 10 home runs in June, most in the American League. He also tied his monthly career-high set with the Phillies in May 2009 and is the first Seattle player to hit 10 in one month since Edgar Martinez in May 2003 ... The Cubs hit 5-for-11 with runners in scoring position while the Mariners went 1-for-14 with RISP ... The Cubs are 10-4 against American League teams and 24-20 against teams outside their division this season.
06/30 21:49:48 ET
Tuesday, December 17th, 2013 - Tuesday, January 7th, 2014
Thursday, December 19th, 2013
Sunday, December 22nd, 2013