Bogaerts' solo shot, his 10th homer of the season, to center field with two outs in the sixth inning off right-hander Felix Hernandez, helped the Red Sox earn their fourth consecutive victory.
Red Sox reliever Joe Kelly pitched around a two-out single by Dee Gordon in the eighth.
That set the stage for closer Craig Kimbrel, who got out of some self-induced trouble for his 22nd save of the season.
Kimbrel walked Mitch Haniger leading off the ninth on four consecutive pitches, and Haniger advanced to second on a wild pitch. Kimbrel then walked Nelson Cruz on a 3-2 count. Kimbrel then struck out Kyle Seager on three fastballs in a row, then got Ryon Healy to ground to shortstop Bogaerts, who started a game-ending double play.
Price (8-4) and Hernandez (6-6) dueled for seven innings.
Price allowed one run on five hits with no walks and seven strikeouts. Hernandez gave up two runs on eight hits in seven innings with one walk and six strikeouts.
Boston has won each of Price's past seven starts, during which he is 6-0 with a 2.64 ERA.
The Red Sox took the lead in the second inning. With one out, Rafael Devers lined a single to right field and then stole second. After Eduardo Nunez struck out, Jackie Bradley Jr. lined a double to right field to make it 1-0.
The Mariners tied it in the fifth as Seager and Healy opened the bottom of the inning with back-to-back singles. Seager stole third base, his first theft of the season, when the Red Sox botched a pickoff play. Guillermo Heredia then lifted a sacrifice fly to left field.
With one out in the seventh, Bradley walked and Christian Vazquez singled to center to bring up Mookie Betts, the American League's leading hitter. However, Hernandez got Betts to ground into a double play to end the threat.
Right-hander Nick Rumbelow, called up earlier in the day from Triple-A Tacoma, made his Mariners debut, pitching a 1-2-3 ninth inning. His previous major league experience consisted of 17 relief outings for the New York Yankees in 2015.
--Field Level Media