With Bo Bichette on second as the automatic runner, Belt hit the first pitch from Mike Baumann (9-1) to right-center for his 14th home run. Vladimir Guerrero Jr. followed with a double, went to third on a fly out and scored on a two-out wild pitch.
Daulton Varsho also homered for Toronto, which has won three straight.
Tim Mayza (3-1) pitched a scoreless ninth and Jordan Romano worked the tenth for his 31st save.
Adley Rutschman and Jordan Westburg each had two hits for Baltimore, which had won three in a row. Baltimore was 2-for-14 with runners in scoring position.
Baltimore's Ryan Mountcastle walked to increase his on-base streak to 27 straight games.
Toronto starter Yusei Kikuchi allowed three runs on seven hits over 4 2/3 innings. He struck out six and walked one.
Grayson Rodriguez gave up three runs on eight hits and two walks in six innings for Baltimore. He struck out five.
The Orioles took a 1-0 lead in the first when Gunnar Henderson singled with two outs, stole second and scored on a double by Austin Hays.
Toronto answered in the second. George Springer led off with a walk and Varsho followed with his 16th homer of the season, a shot to right-center.
Matt Chapman singled with one out in the Toronto fourth, went to second on a ground out and scored on Kevin Kiermaier's double to make it 3-1.
The Orioles tied it in the fifth. Jorge Mateo and Rutschman opened with singles and Mountcastle lined out. Henderson struck out with the runners going and catcher Danny Jensen threw wild to second, allowing Mateo to score from third.
Hays walked and Yimi Garcia replaced Kikuchi. Westburg greeted Garcia with a double down the left field line, scoring Rutschman with the tying run.
—Field Level Media