TORONTO (AP) -- Cleveland right-hander Shane Bieber wrapped up a shaky pregame bullpen session and shared a worried look with catcher Kevin Plawecki.
''I was like ''Let's just find a way to get it done,'' Bieber told his battery mate. ''Fortunately, I was able to do that.''
He sure was. Bieber pitched a one-hitter, allowing only a double by Eric Sogard in the seventh inning, and the Indians kept up their surge by beating the Toronto Blue Jays 4-0 on Wednesday night.
The Indians topped prime trade target Marcus Stroman and improved to 14-4 in July. They are 30-12 since June 4, the best record in the majors over that span.
The shutout was Cleveland's AL-leading 11th. The Blue Jays were blanked for the eighth time.
Bieber (10-3) struck out 10 and walked one in his second career complete game. The MVP of the All-Star Game blanked Baltimore on May 19 when he fanned 15.
''He just pitched like a veteran,'' Indians manager Terry Francona said. ''He's maturing so fast. He's barely got a year under his belt. It just looks like he's going to get better and better. It's fun to watch.''
Sogard spoiled Bieber's bid when he opened the seventh when a drive that bounced over the right field wall.
''It was a curveball down and in,'' Bieber said. ''He kind of dropped his hands, he's a good hitter. I would have liked that a little bit more away. I thought it was a decently executed pitch. He's a good hitter and he took advantage of it.''
One out later, Lourdes Gurriel Jr. was hit by a pitch, but Vladimir Guerrero Jr. flied out and Justin Smoak struck out to end the inning.
Bieber pitched a rain-shortened, seven-inning no-hitter at Triple-A in May 2018, less than a week before making his big league debut. He became the youngest Indians pitcher to throw a shutout while giving up no more than one hit and striking out at least 10 since a 22-year-old Dennis Eckersley no-hit the Angels in 1977, according to MLB.com.
''He gave us an incredible outing tonight,'' Indians outfielder Greg Allen said of Bieber.
Allen had three hits and an RBI and Jose Ramirez had two hits and scored a run.
Cleveland broke through in the in the fifth when Allen hit a two-out single and scored on Kevin Plawecki's double, sliding home just ahead of the tag. Toronto challenged the call, but home plate umpire Fieldin Culbreth's call stood.
''It was definitely bang-bang,'' Allen said. ''I felt like I was able to get under the tag and beat it, but I knew that it was going to be close. I was definitely happy to see the safe call.''
Stroman (6-11) allowed one run and five hits in seven innings, further burnishing his credentials ahead of next week's trade deadline. The righty pitched seven shutout innings to beat Detroit last Friday.
The fiery Stroman gestured to the stands and yelled ''This is my house!'' as he walked off the field following the top of the seventh.
''I just thought it could be my last outing here,'' Stroman said afterward, wearing a visor with the words 'Let me be me' on it.
''I've always been emotional, I feel like I've had a pretty good tenure as a Blue Jay,'' Stroman said. ''There's been no willingness from the front office to sign me, so I've just kind of come to terms with it and I'm ready to dominate, wherever that may be, absolutely dominate.''
The loss was Stroman's first since June 20 at Texas, ending a streak of five unbeaten starts.
Indians: RHP Corey Kluber threw a 35-pitch bullpen session before the game. Kluber has been sidelined since May 1, when he was hit by a line drive from Miami's Brian Anderson and broke a bone in his forearm. Kluber will throw another bullpen Saturday. ... OF Tyler Naquin (right hamstring) was held out of the starting lineup for the second straight day, but did run on the field before the game.
Blue Jays: RHP Justin Shafer was available out of the bullpen. Shafer left Monday's game because of a sore elbow.
Allen reached base for the 17th straight game, extending his career-best streak.
Toronto was held to one hit or fewer for the first time since Canadian left-hander James Paxton pitched a no-hitter for Seattle at Rogers Centre on May 8, 2018.
Stroman has received no runs from the offense in eight of his 21 starts.
Indians: RHP Adam Plutko (3-2, 4.81) starts Thursday as the Indians begin a four-game series in Kansas City. LHP Mike Montgomery (1-3, 6.83) starts for the Royals. Plutko is 0-2 in four career games against Kansas City.
Blue Jays: Toronto is off Thursday. RHP Jacob Waguespack (1-0, 5.68) starts Friday in the opener of a three-game series against Tampa Bay. The Rays have not named a starter.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports