Johan Santana won for the first time in 20 months, finally getting some run support from his teammates, and the New York Mets beat the Arizona Diamondbacks 4-3 on Saturday to snap a four-game losing streak.

Mike Nickeas and Andres Torres each hit a two-run single to back Santana, who toughed out seven innings for his first victory since the two-time Cy Young Award winner had shoulder surgery in September 2010. Daniel Murphy went 4 for 4 for the second four-hit game of his career.

Santana's last win came against Atlanta on Sept. 2, 2010, before his injury wiped out last season. The Mets had scored just four runs in his first five starts this year but matched that total in the fourth inning Saturday.

Santana (1-2) allowed nine hits but gave up only three runs, striking out five and walking one. New York's bullpen bounced back with two scoreless innings after blowing a late lead Friday night.

The Diamondbacks got a runner to second in both the eighth and ninth but couldn't score the tying run.

Bobby Parnell struck out pinch-hitter Miguel Montero looking in the eighth. In the ninth, Frank Francisco retired Aaron Hill on a shallow fly and then struck out Justin Upton swinging for his sixth save in seven chances.

Down 1-0, the Mets loaded the bases with one out in the fourth on two singles and a walk. Nickeas singled in two runs, chasing rookie Patrick Corbin (1-1), who won his debut Monday at Miami. The 22-year-old lefty allowed four runs on five hits and two walks with two strikeouts in 3 1-3 innings.

Santana bunted the runners over to second and third against Josh Collmenter, and Torres' two-out single gave New York a 4-1 lead.

Santana nearly let it all slip away. He opened the fifth by allowing a single to A.J. Pollock. With runners on first and second and two outs, Paul Goldschmidt, who had struck out in his first two at-bats, hit a two-run double to pull Arizona to 4-3.

After Santana retired the first five batters, Ryan Roberts homered to left to give Arizona a 1-0 lead. The third baseman had just three hits in his previous 35 at-bats.

Roberts didn't start Friday and was retired as a pinch hitter. Cody Ransom had a home run and three RBIs in his place at third, but Roberts was back in the lineup Saturday and he responded with two hits and a walk.

Corbin is from Clay, N.Y., a suburb of Syracuse, about 4½ hours from Citi Field. He left 50 or so tickets for family and friends but they didn't get to see him for long.

With Santana at 93 pitches, Mets manager Terry Collins let him bat with one out and a runner on first in the sixth. Santana sacrificed Kirk Nieuwenhuis to second, but after Torres was intentionally walked, Ruben Tejada struck out looking.

In his last inning in the seventh, Santana retired the side in order for the first time since the first.

NOTES: Corbin got his first major league hit, a single off Santana in the third. Santana then singled off Corbin in the bottom half for his first hit of the season. ... Mets 1B Ike Davis did not start a day after going 0 for 4 with a key error. Collins said the day off was to give Justin Turner some playing time and was not connected to Davis' recent struggles. Davis was a defensive replacement in the ninth.