Miguel Olivo hit two home runs and Felix Hernandez pitched eight strong innings to lead the Seattle Mariners to a 7-3 victory over the Detroit Tigers on Sunday.

The Mariners trailed 2-0 and hadn't hit the ball out of the infield when Olivo led off the fifth with a home run. Seattle went on to score three runs in the inning, and Olivo added a two-run shot in the eighth.

Hernandez (7-5) allowed three runs on nine hits. He struck out six and walked five.

Rick Porcello (6-4) went seven innings, allowing three runs on six hits with three walks and five strikeouts.

Brendan Ryan had three hits for Seattle, and Justin Smoak hit a two-run homer in the ninth for the Mariners.

Porcello was forcing the Mariners to hit groundballs before Olivo started Seattle's fifth-inning rally with a line drive over the left-field fence. One out later, Chone Figgins walked, and after he stole second, Ichiro Suzuki lined a two-out single over third baseman Don Kelly to tie the game. After Ryan bunted for a hit, Smoak hit a bloop to left-center that dropped between shortstop Jhonny Peralta, left fielder Andy Dirks and center fielder Austin Jackson for an RBI single.

Kelly prevented more runs when he went back into shallow left field to catch a popup by Carlos Peguero with the bases loaded for the third out, but the Mariners added a couple more runs in the eighth. After Peguero drew a one-out walk from reliever Daniel Schlereth, Joaquin Benoit came out of the Detroit bullpen and gave up Olivo's second homer of the game and 10th of the season.

It was the fourth multihomer game of Olivo's career. The catcher was shaken up in the bottom of the eighth when he appeared to be hit in the groin area by a foul ball, but he stayed in the game.

Hernandez, last year's American League Cy Young Award winner, allowed a walk to Miguel Cabrera and a single to Victor Martinez to start the bottom of the eighth. Alex Avila hit a two-out single to drive in a run, but Ramon Santiago hit a groundball to end the inning on Hernandez's 126th and final pitch.

Smoak's homer off Adam Wilk, his 12th of the season, made it 7-3.

Brandon League pitched the ninth for Seattle.

Detroit opened the scoring in the second thanks in part to a misplay by Hernandez, who turned and looked to second for a possible force play before throwing too late to first on Dirks' bunt. That infield single gave the Tigers runners on first and second, and Avila eventually drove in a run with a two-out single.

Jackson led off the bottom of the third with a double off the fence in left-center and went to third on an error by Peguero, the left fielder. Hernandez came within a strike of getting out of that jam, but Martinez hit an RBI single with two outs for a 2-0 lead.

NOTES: The Tigers announced after the game they will call up OF Magglio Ordonez on Monday. Ordonez has been rehabbing his injured right ankle with Triple-A Toledo. ... Cabrera reached base in all four trips to the plate against Hernandez, hitting a single and drawing three walks. Martinez hit two singles with a walk. ... Suzuki had two hits for a second straight game after sitting out Friday night.