TORONTO - Swinging a big bat, the Toronto Blue Jays served a reminder Saturday why they made it within two wins of the World Series last fall.

It's been 19 games coming this season, with a hard-hitting 2015 setting the bar very high for this year's lineup.

"We definitely needed that today," manager John Gibbons said after a morale-lifting 9-3 win over the Oakland Athletics. "That looked a lot like last year. But last year is over with. And just hopefully we can build off that."

Josh Donaldson homered and drove in four runs while Troy Tulowitzki slammed two solo shots in a 13-hit attack that snapped the Jays' three-game losing streak before a sellout crowd of 46,334 at the Rogers Centre. It marked Toronto's highest offensive output of the young season.

"Today was more Toronto Blue Jays offence-like than what we've seen early on in the season," said Donaldson.

It was a complete effort from Toronto (9-10). J.A. Happ delivered another efficient outing and his defence, bolstered by the return of Tulowitzki at shortstop after a night off, turned three double plays.

Ezequiel Carrera, filling in for Michael Saunders in left field and atop the batting order, also had an afternoon to remember. The first four-hit outing of his career featured three singles and a ground-rule double in five at bats. He scored three runs and saved a few more with acrobatic diving catches in the fifth and ninth innings.

"One of my best games," Carrera said by way of summary through an interpreter.

The Venezuelan's performance ensures another day's rest for Saunders' hamstring.

"I'm definitely playing him tomorrow, I can guarantee that," Gibbons said. "It gives Michael a little time to heal up. Michael's our left-fielder. But like I told you before, I'm dumb but I'm not stupid."

Happ (3-0) gave up three runs on seven hits in seven innings, with one strikeout and one walk in his 200th career appearance. The left-hander has gone at least six innings in his four starts, living up to the US$36 million, three-year deal he signed in the off-season.

Gavin Floyd closed it out for the Jays.

"It was a good team win," said Tulowitzki, who came into the game batting .150 with two home runs. "We pitched well, played good defence. Obviously some individuals on the team had a great game and it was fun out there. It's always better winning, I'll tell you that."

"That was a really good Blue Jays win," echoed Happ. "Great defence and a lot of good offence. And I'd like to think the pitching was good as well."

Added Gibbons: "A big day for a lot of guys, it really was."

The victory snapped Oakland's six-game win streak while ending its perfect road record.

The Athletics (10-8) had billed themselves as the Road Warriors, going 7-0 on their travels prior to Saturday to match the team's best start away from home since an 8-0 run in 1990. But Toronto roughed up Chris Bassitt early, with two runs in the first and three in the second with Donaldson's three-run blast dropping over the 400-foot mark in centre field.

Tulowitzki added solo shots in the fifth and seventh — his third and fourth of the season — around a Jose Bautista sacrifice fly in the sixth. Donaldson's RBI single in the eighth made it 9-3.

Oakland had to settle for runs in the first, fourth and seventh.

Donaldson took his lumps at the plate. He was spiked in the fourth inning when catcher Josh Phegley stepped on his foot throwing to second. And former Jays teammate Liam Hendriks hit him in the thigh in the sixth.

Happ then hit Khris Davis to open the bottom of the sixth, prompting umpire Chris Conroy to warn both teams to cease and desist.

Hendriks said he didn't mean to hit Donaldson. "Great teammate, great guy. Just a ball that slipped out and managed to get him pretty square."

Asked whether he was sending a message by hitting Davis, a guilty-looking Happ replied: "I don't know."

Gibbons didn't seem too fazed by the rough stuff. "Hockey-town, baby," he said with a broad smile.

Bassitt (0-1) was tagged for six runs on nine hits, facing 26 hitters in five difficult innings.

"I had nothing today," he said.

Toronto, which led the major leagues with 891 runs last season (5.5 per game), came into the game ranked 12th in the majors with 70 (3.9 per game). The Jays also led the majors in strikeouts with 171, the most in franchise history at this time of the season.

Toronto ranked 23rd in batting average (.228). They were second last season at .269.

"It's never as easy as we made it look last year," Gibbons said prior to the game.

Mark Canha hit a solo homer for the Athletics — the 500th home run in the majors this season — in the first. It was Canha's fourth hit and third home run of the season.

Toronto optioned left-hander Chad Girodo to Buffalo after the game, paving the way for Drew Hutchison to pitch Sunday as Gibbons looks to give his rotation an extra day's rest.

Follow @NeilMDavidson on Twitter