SEATTLE -- The few Mariners fans that hung around from the smallest crowd in Safeco Field history Monday night, saw one of the most improbable comebacks in recent team history.

Luis Rodriguez lined a two-run single with two outs in the ninth inning off Shawn Camp to cap Seattle's rally for an 8-7 win over the Toronto Blue Jays.

On a night reigning AL Cy Young Award winner Felix Hernandez was far from his best, his teammates came through with a remarkable rally to snap Seattle's seven-game losing streak. It was also the Mariners' first home win of the season and snapped a seven-game losing streak despite only 13,056 showing up for the game, the lowest attendance in the 12-year history of Safeco Field.

"We really broke through there in the eighth inning," manager Eric Wedge said. "(Michael) Saunders got the big hit to lead things off after that in the ninth. You can't say enough about that at-bat that Luis Rodriguez had. Nine of 10 pitches with the game on the line right there, fighting through it, fouling some pitches off and ultimately came through and you love to see that. It was a good win for us."

Seattle trailed 7-0 entering the seventh before the rally began, thanks largely to an eighth-inning meltdown by the Blue Jays bullpen.

Camp (0-1) played only a part in Toronto's bullpen collapse, but declined to speak to reporters after the game.

"A tough night on the mound," Blue Jays manager John Farrell said. "Anytime you walk 11 guys and still be in the game. Things obviously had to go right for us in the first part of it, but we simply lost the strike zone, to say the least."

Milton Bradley got things rolling with his first homer of the season, a solo shot in the seventh.

In the eighth, a walk and two singles chased Toronto reliever Davis Purcey and loaded the bases. Octavio Dotel walked in two runs and Mark Rzepczynski walked in another before allowing a single to Justin Smoak that scored two and pulled Seattle within one.

"It was a tough inning," Rzepczynski said. "For me personally, overall it was a tough inning. Camp should never have gotten out there, we should have got those guys out. It was one of those innings that every thing that could go wrong did go wrong."

But Miguel Olivo was unable to deliver again, grounding into an inning-ending double play as Toronto clung to a 7-6 lead.

Michael Saunders led off the ninth with a double down the right-field line and Brendan Ryan sacrificed him over to third. Ichiro Suzuki was intentionally walked and stole second to set up Rodriguez's moment.

Rodriguez arrived at spring training on a minor league contract, but earned a job on the major league roster. He fought off nine pitches from Camp before driving Camp's 10th pitch deep to right-center field and setting off a celebration for the few fans that remained.

"I had to swing at everything, anything close to the plate," Rodriguez said. "I got my pitch and hit it."

Rodriguez fought off nine pitches from Camp before delivering the game-winning single.

Josh Lueke (1-0) picked up his first career win.

Chone Figgins was handcuffed by a line drive from Jayson Nix that dribbled away and allowed Travis Snider to score and give the Blue Jays a 1-0 lead. The ball hit Figgins on the left thumb and he would leave the game in the fourth inning, being replaced by Luis Rodriguez. Figgins had X-rays, which came back negative. Wedge said it will probably be a day-to-day thing.

Jose Bautista singled on a ball deep in the hole at shortstop and beat out the throw by Brendan Ryan. After a strikeout by Adam Lind, Bautista was off and running on a hit and run and was caught in a rundown between first and second when Aaron Hill failed to make contact, but Ryan dropped the ball as Bautista slid safely into second.

Hill promptly doubled down the left field line to score Bautista. Hill then scored on a fielder's choice by Snider that gave the Blue Jays a three-run cushion.

Encarnacion led off with a single and Nix doubled to put runners on second and third with no out. A wild pitch scored Encarnacion from third and a sacrifice fly by Yunel Escobar scored Nix to give Toronto a 5-0 lead. Hernandez was done after the sixth after Corey Patterson added a two-run homer to make it 7-0.

Seattle had chances to score early, loading the bases twice in the first three innings. Olivo came to the plate with two outs both times and failed to get the hit to put Seattle on the board. Olivo stranded 10 runners, six in scoring position.

Game notes

Mariners 2B Jack Wilson was back in the lineup after being benched the last three games. Wilson took himself out of the team's final game in Texas after committing two errors at second base and was sat down by Wedge. ... It was the first time Felix Hernandez had allowed 10 hits in a game since July 16, 2010, and first seven run outing since May 1, 2010. ... Patterson started in center field for OF Rajai Davis, who was placed on the 15-day DL before the game. ...