Orioles right-hander Mike Baumann (5-0) pitched a scoreless ninth of relief for the victory
Anthony Santander went 4-for-4 with a home run and two RBIs for the Orioles, who avoided just their second three-game losing streak of the season
McKenna came on as a defensive replacement in right field for Santander in the ninth. McKenna got a chance to bat with ghost runner Cedric Mullins at second base in the 10th and launched a 2-1 sinker from Justin Topa (1-3) into the right-field seats.
Aaron Hicks also homered for Baltimore, and J.P. Crawford and Julio Rodriguez had solo shots for Seattle.
The Orioles opened the scoring in the second inning. With one out, Gunnar Henderson lined a single to center and stole second. Ramon Urias drew a two-out walk before Adam Frazier lined a run-scoring single to right
The Mariners took the lead in the third as Ford homered on a towering shot to right and, an out later, Crawford lined a homer just over the wall in the right-field corner
Santander tied it at 2-2 with two outs in the bottom of the inning with his two-out shot to right-center.
The Orioles regained the lead in the fifth as Frazier led off by lining a single to right and stole second. Adley Rutschman drew a one-out walk and Santander greeted reliever Matt Brash by grounding a run-scoring single to right to make it 3-2
Rodriguez led off the sixth with a blast into the Orioles' bullpen in left-center to tie the score at 3-3
Hicks gave the Orioles the lead in the bottom of the inning with a homer to almost the same spot as Rodriguez
Rodriguez robbed the Orioles' Ryan O'Hearn of a home run in the seventh, making a leaping catch at the wall in center field to end the inning
Orioles starter Dean Kremer allowed three runs on five hits to win his third straight start. The right-hander walked one and struck out five
Mariners rookie Bryce Miller struggled with his command and lasted just 4 1/3 innings. The right-hander allowed three runs on six hits, with three walks and four strikeouts
--Field Level Media