Starting pitcher Clayton Richard settled down after a rough start and drove in three runs to lift the San Diego Padres to a 9-5 victory over the Seattle Mariners on Friday night.

Richard (5-7) gave up four runs — including two home runs — over the first three innings before he allowed only an unearned run the rest of the way as he pitched into the seventh.

A two-run double by Richard keyed the Padres' five-run, fourth inning when they took a 7-4 lead.

Chase Headley also drove in three runs, two on sacrifice flies, for San Diego.

Franklin Gutierrez and Miguel Olivo homered for Seattle, which has allowed 39 runs on the first four games of its road trip.

Richard gave up five runs, three earned, and six hits in 6 2-3 innings. Richard struck out six and walked three as he won his third straight start, all in interleague play.

Huston Street got the final out with two runners on for his ninth save in as many chances.

The Padres fell behind 4-0 before they rallied for two runs in the third inning and then sent nine batters to the plate in the fourth.

Kevin Millwood (3-6) hit Yonder Alonso to lead off the inning. After Logan Forsythe's infield single, Everth Cabrera doubled in one run. With one out, Richard lined a two-run double down the right-field line.

Will Venable followed with a run-scoring single. After third baseman Kyle Seager committed his second error of the game on Cameron Maybin's grounder, Venable and Maybin pulled off a double steal. Headley hit a sacrifice fly for the final run.

Richard, who came into the game with one hit in 25 at-bats, added a two-out RBI single in the fifth.

Millwood allowed eight runs — five earned — and eight hits over five innings. The right-hander is 0-2 in his last five starts, including Seattle's 1-0 combined no-hitter against the Los Angeles Dodgers on June 8 when he received a no-decision.

Gutierrez had four hits and Ichiro Suzuki finished with three for Seattle, which is only 1-3 on the road trip despite hitting seven home runs and scoring 28 runs.

Notes: Richard has won his last five starts against AL teams and is 4-1 against Seattle. ... The Mariners lost for just the seventh time in 22 games at Petco Park. . San Diego RHP Anthony Bass, who left in the fifth inning on Wednesday with shoulder inflammation, is still sore. The Padres are not sure if Bass will make his next start. The Padres already have five starters among seven pitchers on the DL. . Mariners RHP Felix Hernandez (4-5, 3.52) will face Padres RHP Jason Marquis (1-2, 1.86) in the middle game of the three-game set on Saturday night.