Zach Stewart showed he's not afraid to throw strikes in his major league debut.

The 24-year-old rookie allowed just two runs on seven hits and a single over seven innings in a game the Baltimore Orioles eventually won 4-3 over the Toronto Blue Jays.

"He didn't fear contact," Blue Jays manager John Farrell said. "He got ahead in the count and used his fastball and slider to disrupt some timing on some first pitches."

Stewart's efficient outing marked a change from Kyle Drabek, the fellow rookie he replaced in Toronto's rotation. Following his last start, Toronto sent Drabek to Triple-A Las Vegas as the AL's walks leader.

"Once I got through the warm-up and got through the first pitch it was more like, 'It's still baseball,'" said Stewart. "I learned a lot of things as to how to pitch guys in certain situations, I made a few mistakes that I got away with."

Stewart struck out four before being replaced by Jason Frasor.

Orioles shortstop J.J. Hardy said Stewart impressed him.

"He threw all fastballs to me," Hardy said. "I know he was throwing some sliders to some guys and some changeups. He had a little run to his fastball. I thought he was pretty good."

Jeremy Guthrie pitched five shutout innings for Baltimore before being forced out of the game by pain that began in his warm-ups before the fifth inning.

"Tomorrow I'm going to go see the doctor and get it looked at and see what they say," said Guthrie. "There was enough pain that we're not going to go forward with that."

Baltimore scored two runs in the ninth inning to help snap a 16-game losing streak in Toronto.

Vladimir Guerrero and Luke Scott opened the ninth with back-to-back singles against Toronto closer Jon Rauch (2-3). Derek Lee followed with a swinging bunt that Blue Jays third baseman Jayson Nix charged on, but Nix's throw home was high, allowing pinch-runner Nolan Reimold to score for a 3-2 Orioles lead.

Luis Perez replaced Rauch and walked Mark Reynolds to load the bases before Ryan Adams singled to score pinch-runner Felix Pie and make it 4-2.

Adam Lind's solo home run off Kevin Gregg in the bottom of the ninth made it 4-3, but the former Toronto closer recovered to earn his 13th save as Baltimore avoided a sweep.

Jason Berken (1-2) earned the win with two shutout innings in his second appearance since being recalled from Triple-A Norfolk.

Berken's last win was also Baltimore's last victory in Toronto on Aug. 7, 2009.

Guthrie allowed just one hit with five strikeouts and one walk before leaving after throwing only 64 pitches.

Hardy homered off Stewart leading off the sixth — his seventh homer of the season — to give Baltimore a 1-0 lead. Nick Markakis followed with a single and scored on a double by Guerrero, who reached 2,500 career hits.

"I feel very good," Guerrero said through an interpreter. "Fifteen years in the big league means I've had a lot of hits and it feels good."

Jim Johnson replaced Guthrie in the sixth and almost immediately coughed up the lead on a two-run single by Jose Bautista.

Nix's single and an error by second baseman Adams on a potential double-play ball from Yunel Escobar put two runners on for the Blue Jays. Corey Patterson's sacrifice bunt put runners at second and third before Bautista tied the game 2-2.

Toronto loaded the bases against Johnson on singles by Adam Lind and Aaron Hill, but Edwin Encarnacion grounded into an inning-ending double-play.

Stewart dealt nicely with his first big league jam, created in part by the bright sunshine.

Blue Jays second baseman Hill and right fielder Bautista seemed to lose track of a Hardy pop-up because of the sun. The blooper fell in behind Hill and bounced past Bautista for a double.

With runners on second and third and two outs, Stewart ended the inning by getting Markakis on a groundout to second.

A balk by Stewart sent Guerrero to second following a one-out single, but Stewart again escaped unscathed by retiring Luke Scott and Derrek Lee on fly balls.

Blue Jays catcher Jose Molina was ejected from the game after striking out in the bottom of the seventh inning. J.P Arencibia replaced him behind the plate.

Notes: Toronto expects to activate John McDonald in time for Friday's game at Cincinnati. The infielder has been on the 15-day DL since May 28 with a right hamstring injury. ... The Orioles announced Chris Jakubauskas is scheduled to start Sunday's game in Washington. ... The 16-game home winning streak against Baltimore that Toronto carried into Thursday's game was the longest in franchise history. It was also the longest such skid for the Orioles franchise since it moved to Baltimore in 1954.