TORONTO -- With the all-star break just around the corner, Blue Jays manager John Gibbons knows his team needs to win games if they're going to stay in the hunt for a playoff spot.
That's why he turned to closer Roberto Osuna for a third straight day on Thursday as Toronto used a five-run fifth inning to defeat the MLB-best Houston Astros 7-4.
Osuna picked up his 22nd save of the season and 21st consecutive overall which tied Billy Koch for the fourth longest save streak in franchise history.
"A closer's got to be able to go three in a row. I just don't think he's had the chance all year, that's why he hasn't done it," said Gibbons. "I said the other day, I think it's as good as I've ever seen him."
Catcher Russell Martin, who had three hits including a solo home run, continues to be impressed by his star 22-year-old reliever. He said it appears as though Osuna's demeanour on the mound is consistent.
"It looks like he believes he's going to make a pitch every single time," said Martin, whose sixth-inning blast was his second long ball in as many days.
"But just how good he is at making those adjustment and he's doing it at a young age. You don't really see that too much from young players and he has such great feel and he keeps getting better. It's a tough at-bat for anybody right now."
Kendrys Morales added an RBI double and scored twice for the Blue Jays (40-45), who won their third straight. The win also ended Toronto's five-game losing streak at home in its last series before the all-star break.
Francisco Liriano (5-4) threw six-plus innings while allowing three runs on nine hits and striking out four on a warm summer evening at Rogers Centre.
Lance McCullers Jr., (7-2) took the loss after giving up six runs -- five earned -- on nine hits and walking two over 4 1/3 innings for the Astros (58-28), who had a four-game winning streak snapped.
"He uncharacteristically didn't quite have his stuff," Houston manager A.J. Hinch said about the 2017 all star. "His breaking ball wasn't as good as it usually is, his command, he had a little trouble with the mound, finding his release point, his rhythm. Everyone's allowed a bad day at work."
Josh Donaldson gave the Blue Jays their first lead of the game in the fifth with a two-run single to right field. It snapped an 0 for 15 drought at the plate for the 2015 American League MVP. Morales extended the lead to 4-2 shortly after with an RBI double to right-centre field that scored Donaldson.
Troy Tulowitzki then ended an 0 for 22 skid with runners in scoring position after an RBI single drove in Morales. The run chased McCullers Jr., from the game. Ryan Goins added another run before the inning was over with a double to score Tulowitzki.
Marwin Gonzalez opened the scoring in the second inning with a solo shot to left field for his 15th home run of the season. Gonzalez was later ejected in the sixth inning after striking out.
Carlos Beltran hit a solo home run to right-centre field to lead off the eighth and cut the deficit to 7-4.
Jose Altuve and Alex Bregman each had three hits for the Astros, with Altuve adding two RBIs.
Houston's Carlos Correa, who missed Wednesday's game against Atlanta with left thumb discomfort, extended his hit streak to 14 games with a single in the first inning.
Notes: Attendance was 40,949. ... The Blue Jays signed 16-year-old Brazilian Eric Pardinho to a minor league contract before the game. ... Olympic snowboarder Mark McMorris of Regina threw out the first pitch. ... Aaron Sanchez (0-1, 3.33 ERA) returns from the disabled list to start for Toronto on Friday night. Charlie Morton (5-3, 4.06 ERA) counters for the Astros.