TORONTO -- The Toronto Blue Jays are determined to go into the All-Star break in a positive way.
They are doing a good job of it so far.
By winning the opener of a four-game series, Toronto (49-39) extended its season-best winning streak to six games.
"I think everybody wants to finish well going into the break," said reliever Jason Grilli (2-0), who pitched a scoreless eighth inning to get the win. "To finish on a high note, it's a lot easier to sit on that. We're playing good baseball right now. What I like is there are so many heroes and everybody is contributing in many different ways. It shows we all have confidence in each other and we have each other's backs."
Roberto Osuna pitched a perfect ninth for his 18th save.
Justin Upton and Nick Castellanos hit solo homers for the Tigers (45-41).
Detroit catcher James McCann, who had a single and a double, said the Blue Jays lineup is tough even with Jose Bautista on the disabled list due to a toe injury.
"There really is no breather, and they don't have Bautista right now," McCann said. "It's definitely a team that's going to grind out at-bats and really force pitchers to work."
Ezequiel Carrera led off the bottom of the eighth with a single to center against left-hander Justin Wilson (2-2), and he took third on a single to right by Josh Donaldson.
Edwin Encarnacion struck out, and Carrera was tagged out between home and third on Michael Saunders' bouncer to first. Russell Martin walked to load the bases, and right-hander Alex Wilson entered to face Tulowitzki, who hit a two-run single to right to give the Blue Jays the lead.
The Tigers were without right-handed reliever Bruce Rondon, who was sent back to the hotel during batting practice because he had flu symptoms.
"He's been sick for a couple of days," Tigers manager Brad Ausmus said. "He was sick on the plane last night, too. We were short. That's why we were kind of stretching (Shane Greene) and Justin (Wilson) both, trying to get through. I think at the end, really, Justin was kind of out of gas, so we went to Alex (Wilson)."
Tigers starter Justin Verlander allowed six hits, four walks and two runs in 5 2/3 innings. He struck out five.
"It was a battle," Verlander said. "Those guys, one through nine, really fought me. I was able to get out of some jams there, but obviously, ideally I'd like to go deeper in the game."
Blue Jays starter Drew Hutchison allowed six hits (including two home runs), one walk and three runs in six innings. The right-hander, who was making his second spot start of the season, struck out seven.
"He's back to hitting his spots pretty good," Blue Jays manager John Gibbons said of Hutchison. "Verlander was tough. When he had some jams, he turned it on like he always has in the past. He made it tough. In the past couple of weeks, we've been getting the big hit or two."
Hutchison said, "I wasn't sharp early on, I felt I got better as I went along. I made a couple of mistakes that got hit, which happens, but overall I felt I made good pitches."
The Tigers increased their lead to 4-2 in the seventh against left-handed reliever Brett Cecil. McCann led off with a double, took third on a single by Jose Iglesias and scored on Ian Kinsler's double-play grounder to short.
Saunders led off the bottom of the seventh with a double, and he scored on Tulowitzki's one-out single.
The Blue Jays led 2-0 after the first inning.
Donaldson walked with one out and took second when Encarnacion grounded out to third. Saunders hit an RBI single, and Martin followed with an RBI double.
Upton hit his ninth homer of the season on an 0-2 fastball with two out in the second to cut the lead to 2-1.
Castellanos hit his 17th homer of the season to left center on a 1-1 fastball to tie the game with one out in the fourth.
Upton followed with a double to left, and McCann blooped a single to right that scored Upton. McCann was tagged out trying for a double.
NOTES: Toronto RHP Bo Schultz was recalled from Triple-A Buffalo to replace RHP Marco Estrada (sore back), who went on the disabled list. It is the second stint for Schultz with Toronto. He was not available Wednesday. ... Tigers RHP Michael Fulmer improved his record to 9-2 on Wednesday, holding the Cleveland Indians to two runs (one earned) in six innings. He has allowed one or no earned runs in nine straight starts, the second longest such streak by a Tigers' pitcher since 1913. RHP Doug Fister had 10 consecutive starts in which he yielded one or no earned runs from Aug. 20, 2011-May 12, 2012. ... Blue Jays LHP J.A. Happ (11-3, 3.54 ERA) will start Friday against Tigers RHP Mike Pelfrey (2-7, 4.78). Happ's 11 wins are the most by a Toronto pitcher before the All-Star break since RHP Roy Halladay had 11 in 2008.