TORONTO -- Mark Buehrle wasn't at his best, but he was exactly what the Blue Jays needed to snap a three-game losing streak.
Buehrle (7-1) allowed two runs and six hits in six-plus innings. He walked a season-high five and struck out two.
"Buehrle is on some kind of roll and he was the perfect guy tonight," Blue Jays manager John Gibbons said. "We've been struggling."
Buehrle came in with an AL-leading 1.91 ERA, but saw that rise to 2.04, the same as Detroit's Max Scherzer.
"It didn't feel like it was an easy game," Buehrle said. "Obviously, the five walks shows that."
Bautista hit a three-run homer in the first inning and Lawrie, who returned to the lineup after missing six games with a sore right hamstring, added a two-run shot in the sixth as the Blue Jays avoided what would have been their first four-game sweep to the Angels.
Lawrie said he enjoys playing behind the quick-working Buehrle, calling the left-hander's pace "unprecedented."
"Mark is amazing at what he does," Lawrie said. "You know he's going to go out there and compete for us ever single night, he's going to give us a chance to win."
Both of Toronto's homers came off Angels starter C.J. Wilson, who allowed five runs and six hits in six innings. Wilson (4-3), winless in back-to-back starts for the first time this season, walked three and struck out eight, including four straight during one stretch.
"Two changeups, one to Bautista and one to Lawrie, really cost him," Angels manager Mike Scioscia said. "In between, he settled down and pitched well."
The Blue Jays jumped on Wilson in the first, scoring three runs before the left-hander could record his first out. Steve Tolleson singled on a ball that Wilson couldn't handle, Melky Cabrera walked and Bautista hit a second-deck drive to left, his team-leading 10th.
Mike Trout cut it to 3-2 with a two-out, two-run double in the third. Twenty of Trout's 40 hits this season have been for extra-bases.
Adam Lind drew a one-out walk off Wilson in the sixth and Lawrie followed with a first-pitch homer into the second deck.
C.J. Cron hit a solo homer off Delabar in the eighth and Casey Janssen, who was activated off the disabled list Sunday, finished in the ninth. Janssen had not pitched this season because of a sore back.
Blue Jays outfielder Colby Rasmus left after six innings with tightness in his right hamstring, suffered after making a running catch to retire Pujols in the fifth. Bautista moved from right to center, Tolleson went from second to right, Lawrie moved from third to second and Juan Francisco came in at third.
Gibbons indicated that Rasmus might require a stint on the disabled list, but Rasmus himself said he didn't expect to be sidelined for long.
Francisco made it 7-3 with a two-run single off Cory Rasmus in the eighth.
This was the fifth time in 437 career starts that Buehrle has walked more than four batters. ... The Angels placed 3B Ian Stewart (left hand) on the 15-day DL and recalled INF Luis Jimenez from Triple-A Salt Lake City. Stewart left Sunday's game in the seventh after being hit by a pitch. Scioscia said Stewart was still "very sore" Monday. ... Blue Jays SS Jose Reyes got the day off. ... Toronto put RHP Sergio Santos (elbow) on the 15-day DL, optioned C Erik Kratz to Triple-A Buffalo and recalled RHP Chad Jenkins and INF Jonathan Diaz from Buffalo. ... Los Angeles named RHP Matt Shoemaker as its starting pitcher for Tuesday's game at Philadelphia. He takes the spot of LHP Hector Santiago, who was demoted to the bullpen last week. Shoemaker (0-1) will be recalled from Triple-A to face Phillies LHP Cliff Lee (3-3). ... The Blue Jays begin a three-game series against Cleveland on Tuesday. R.A. Dickey (3-3) faces Indians RHP Justin Masterson (2-1) in the opener.