Cruz hit his 27th homer of the season leading off the seventh inning, Zunino hit his fifth leading off the sixth and Lind capped Seattle's scoring with his 16th of the season with two outs in the seventh. They were the only three hits allowed by Porcello until Zunino's single in the eighth, but enough to hand the right-hander his first loss since May 17 against Kansas City. Porcello (14-3) had won his past eight decisions.
Before the stumble against the Cubs, Iwakuma had won his previous five decisions. He was dominant from the start against the Red Sox, striking out four of the first five batters. Only one baserunner managed to reach second base in the first seven innings against Iwakuma, that coming in the third when Andrew Benintendi got his first major league hit and advanced to second on Brock Holt's two-out single. Benintendi was stranded when Xander Bogaerts fouled out to end the inning.
Iwakuma struck out seven and walked none, leaving with one out in the eight after Benintendi's second hit. Mookie Betts greeted reliever Drew Storen with a single to advance Benintendi to second but he was stranded there again after Bogaerts flew out to the warning track in left to end the inning.
Rookie Edwin Diaz gave up a run in the ninth on Travis Shaw's RBI ground out, but got Sandy Leon for the final out and his second save.
The three home runs by Seattle accounted for the three mistakes Porcello made in an otherwise strong start. Cruz's homer was estimated at 441 feet and reached the second deck in left field. Zunino's homered 427 feet to center field on a night swirling wind appeared to be knocking down fly balls to that part of the outfield. And Lind kept his fly ball fair down the right field line to give Seattle a 3-0 lead.
Porcello struck out eight and walked one.
Red Sox: 1B Hanley Ramirez was out of the lineup and likely will miss a few games with a sprained left wrist after slipping and falling after Tuesday night's loss. Ramirez slipped on the steps leading from the dugout to the clubhouse at Safeco Field. X-rays and an MRI both showed no structural damage and manager John Farrell expects Ramirez to miss at least a couple of games.
Mariners: Seattle RHP Nick Vincent (back strain) will begin a rehab assignment with Single-A Everett. Vincent's been on the disabled list since June 29.
Red Sox: Drew Pomeranz (0-2) makes his third start since being acquired from San Diego. Pomeranz gave up five earned runs in his last start against the Angels.
Mariners: Ariel Miranda (0-0) makes his Seattle debut after being acquired last weekend in a trade that sent Wade Miley to Baltimore.
Mariners 5, Red Sox 4: Mariners second baseman Robinson Cano put a charge into Safeco Field in the eighth inning, and then reliever Diaz got to shut it all down for the first time.
Cano hit a three-run homer to cap a five-run eighth, new closer Diaz got his first major league save and the Mariners overcame a four-run deficit to beat the Boston Red Sox at Seattle.
The Mariners had three hits off Price through seven innings and trailed 4-0. Then Mike Zunino opened the eighth with a home run to left off Price, and Leonys Martin, Sardinas and Guillermo Heredia followed with consecutive singles to chase the lefty.
Matt Barnes (Bethel, UConn) struck out pinch-hitter Seth Smith. Abad came in and tried to get a curveball past Cano, who hit it 394 feet for a one-run lead.
David Ortiz doubled and had two RBI.
Benintendi entered as a pinch-hitter for his major league debut and went 0 for 2, striking out to end the game.