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 5-4 on Tuesday night.
"That's baseball. You can't explain it, you really can't," Mariners manager Scott Servais said. "That's what makes baseball great.
"The fans ride the roller coaster with us. At times, we are tough to watch. I get it," he added. "But you have to keep watching because our guys don't quit and they believe something good is going to happen and tonight it did."
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 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.
"I was just looking for something over the plate," said Cano, who was 1 for 11 in his career against Abad. "He's one of the toughest lefty relievers in the game right now. The guy has got me out a lot of times. I just try to put it in play."
Red Sox manager John Farrell said Abad, "had such good success against Cano. He's working the at-bat in good shape. He got him to chase a couple breaking balls, missed one over the middle of the plate and that was the difference in this one."
Diaz replaced struggling Steve Cishek as closer after Cishek blew a three-run lead in a loss Sunday night to the Cubs and allowed a go-ahead homer in the ninth during a 2-1 defeat to Boston on Monday night. Diaz is a 22-year-old rookie only two months out of Double-A but has a 1.73 ERA in 25 appearances for Seattle. He struck out three in a scoreless ninth Tuesday.
Diaz gave up a one-out walk to Travis Shaw, but Cano came up with the assist.
"When Cano came to (visit) me, I started to relax," Diaz said. "He helped me a lot on the mound. Every time he comes to talk to me, I do everything good. I appreciate it. My first save."
Donn Roach (2-0) pitched two innings for the win.
Top Red Sox prospect Andrew Benintendi entered as a pinch-hitter for his major league debut and went 0 for 2, striking out to end the game. Benintendi is expected to start in left field on Wednesday night.
David Ortiz doubled and had two RBIs. The 40-year-old has the most doubles (36) in a season ever for a player 40 or older, eclipsing Sam Rice, who had 35 in 1930.
He also has 62 extra-base hits, tying Dave Winfield (1992) for most in a season for a 40-or-older player.