TORONTO -- Troy Tulowitzki drove in the tying and go-ahead runs with a bases-loaded single in the eighth inning, and the Toronto Blue Jays rallied to beat the Detroit Tigers 5-4 on Thursday night for their season-best sixth straight victory.
Tulowitzki finished 2 for 4 with a walk and three RBI. He is batting .338 (22 for 65) with 20 RBI in 17 games since coming off the disabled list on June 18.
Jason Grilli (3-2) pitched one inning for the win. Roberto Osuna worked the ninth for his 18th save.
Toronto trailed 4-2 after James McCann scored on Ian Kinsler's double play groundout in the seventh, but the Blue Jays shaved the deficit to one when Tulowitzki hit an RBI single off Justin Wilson (2-2) in the bottom half.
After the Blue Jays loaded the bases with two outs in the eighth, Alex Wilson came on to face Tulowitzki but surrendered a two-run single to right.
Nick Castellanos and Justin Upton hit solo home runs for the Tigers.
Toronto jumped on Detroit starter Justin Verlander in the first, scoring twice with two outs. Michael Saunders hit an RBI single and Russell Martin followed with a double.
Upton halved the deficit with a two-out homer off Drew Hutchison in the second, and Castellanos tied it with a one-out drive in the fourth.
It was the second homer in two games for Castellanos, extending his career high to 17.
Upton followed with a double and scored on a two-out single by McCann, who was thrown out trying to stretch his hit into a double.
Verlander allowed two runs and five hits in 5 2/3 innings. He walked a season-high four and struck out five.
Making his second start of the season in place of injured right-hander Marco Estrada (back), Hutchison allowed three runs and six hits in six innings.
Blue Jays: 3B Josh Donaldson stayed in the game after being hit on the right elbow by a pitch from Shane Greene in the sixth.
Tigers: RHP Mike Pelfrey (2-7, 4.78) starts for Detroit on Friday. He's 1-1 with a 4.96 ERA in three career starts against Toronto.
Blue Jays: LHP J.A. Happ (11-3, 3.54) has won five consecutive starts. He is unbeaten since June 6 at Detroit, when he allowed six runs in five innings.