Troy Scribner (1-0) allowed three hits and two runs in three innings to earn the win in his major league debut.
Osuna took over in the ninth and allowed a one-out single to Kole Calhoun, hit Martin Maldonado with a pitch and gave up an RBI double to Ben Revere. Pinch runner Kaleb Cowart scored from third on a wild pitch to tie the game and Pennington's sacrifice fly put the Angels ahead.
Bud Norris pitched the ninth for his 16th save of the season. He walked Montero to start the inning and his errant pickoff attempt with one out allowed pinch runner Rob Refsnyder to reach second.
Ryan Goins walked, but Jose Bautista hit into a game-ending double play.
Blue Jays starter Francisco Liriano allowed five hits, one walk and three runs in six innings. The left-hander struck out four in what could be his final start with Toronto as the trade deadline looms on Monday.
The Angels (51-54) have won the first two games of the three-game series and have clinched the season series with the Blue Jays (48-56) with a 4-2 advantage and one game remaining.
Yusmeiro Petit, whose 36 previous appearances this season were in relief, allowed three hits and one unearned run while striking out five over four innings.
It was his first start since June 20, 2016. He was pressed into the start when Alex Meyer went on the disabled list Monday because of shoulder inflammation.
Liriano retired his first 10 hitters of the game before Mike Trout reached second base on an infield hit and a throwing error by third baseman Josh Donaldson.
Toronto scored an unearned run in the bottom of the fourth that started with singles by Donaldson and Justin Smoak. Steve Pearce flied to right for the second out or the inning and Donaldson tagged up and ran to third. The relay throw from shortstop Andrelton Simmons overshot third base for an error and Donaldson scored.
Keynan Middleton replaced Petit in the bottom of the fifth and walked his first batter, Montero.
The Blue Jays catcher was running with the pitch and came around to scored on Darwin Barney's double to left. Ryan Goins doubled down the left-field line to increase the lead to 3-0.
Shane Robinson, Yunel Escobar and Trout singled in the sixth to produce one run for the Angels with one out. Albert Pujols walked to load the bases. Simmons hit a two-run single with two out to tie the game.
Scribner made his major-league debut when he replaced Middleton in the bottom of the sixth.
The right-hander allowed a one-out single to Steve Pearce and a two-run home run to Montero with two out. It was Montero's fifth homer of the season, the first four were with the Chicago Cubs. The Blue Jays picked him up early this month after the Cubs designated him for assignment late in June.
Joe Biagini pitched a perfect seventh after replacing Liriano and Joe Smith pitched around a walk in the top of the eighth.
NOTES: Toronto SS Troy Tulowitzki (sprained right ankle) was put on the 10-day disabled list Saturday after being injured Friday. INF Rob Refsnyder was recalled from Triple-A Buffalo. ... Blue Jays RHP Chris Smith was optioned to Buffalo Saturday and RHP Mike Bolsinger (left knee inflammation) was reinstated from the disabled list. ... Angels INF Nick Franklin was designated for assignment Saturday and RHP Troy Scribner was selected from Triple-A Salt Lake. ... Angels RHP Jesse Chavez (5-10, 5.35 ERA) will face Blue Jays RHP Cesar Valdez (1-0, 4.97) Sunday in the series finale.