Updated

Things are finally getting back to normal for Jason Bay. The New York Mets' slugger is over that stubborn concussion that wiped out half of last season, and that strained ribcage that put him on the DL again this season.

He's back to hitting home runs, and the Mets are back to winning.

Bay homered and drove in three runs Saturday, and Ike Davis went deep for the third straight game, helping the Mets hold off the pesky Arizona Diamondbacks 6-4 for their third consecutive victory — all of them since Bay returned from the disabled list.

"He's one of the pros in the clubhouse, and there's a lot of them in there, but he brings a sense of calmness," Mets manager Terry Collins said. "It's what we needed."

The Mets had lost 12 of 14 before their latest upswing.

"All of a sudden we're getting some timely hits," Bay said. "We're getting some good pitching at the back end of ballgames. There's a lot of reason to be optimistic."

The Mets had a season-high 15 hits after rain delayed the start 1 hour, 21 minutes. They scored all of their runs with two outs, including a go-ahead single by Daniel Murphy in the sixth inning and another run-scoring single by Murphy in the eighth inning.

That gave the Mets bullpen some breathing room.

Rookie reliever Pedro Beato ran his scoreless innings streak to 11 with a clean seventh, and Jason Isringhausen worked around a single in the eighth, before Francisco Rodriguez put runners on the corners with one out in the ninth. He rebounded to strike out Xavier Nady and Chris Young, wrapping up his fourth save in his typical, adventuresome fashion.

"Well, Frankie Rodriguez is a good closer," Diamondbacks manager Kirk Gibson said. "He struck out Nady on a good changeup and (Young) out on breaking balls."

Dillon Gee (2-0) went six innings and allowed two earned runs, an RBI triple by Stephen Drew and a solo homer by Miguel Montero that tied the game in the sixth inning.

The 24-year-old right-hander has performed well since being recalled from the minors, making a good argument to keep him in the rotation when Chris Young (right biceps tendinitis) returns from the disabled list next week. Gee also won his start last weekend at Atlanta.

"I try to take every day day-by-day," Gee said. "No matter what the circumstances, I have to do my best every day. I'm just going to keep working until someone tells me otherwise."

Barry Enright (0-2) got hammered again for Arizona, allowing five runs and 12 hits in 5 2-3 innings. He's allowed at least four runs in all four of his starts this season.

The Diamondbacks gave him an early lead when Drew ripped a triple down the first-base line to score Justin Upton in the first inning. But the Mets answered in the bottom half, when Jose Reyes walked and David Wright singled ahead of Bay, who lined a two-out single up the middle.

Bay added to the lead in the third when he homered into the bullpens in right-center field, his first long ball since June 28, 2010.

Davis followed with his own mammoth shot to right, this one landing about halfway up the porch that overhangs the outfield wall.

"I'm still feeling like I'm getting up to speed," said Bay, who has four hits since coming off the disabled list Thursday. "I'm feeling pretty good, though."

The Diamondbacks drew within a run in the fourth, when Drew worked a one-out walk and Montero hit a grounder to Murphy at second base that he let dribble into the outfield for an error. Ryan Roberts and Gerardo Parra followed with run-scoring singles to make it 4-3.

Montero tied the game in the sixth with a homer to right field that landed on the pedestrian walkway above the bullpens, well over 400 feet from home plate.

Murphy put the Mets back ahead in the bottom half, and their bullpen kept them there.

"You've got to give the other guys a little credit every now and then," said Young, who was 0 for 5 for Arizona. "They were able to come up with big hits in big situations."

NOTES: Mets CF Jason Pridie had his first career hit, a single in the second inning. ... Gibson had 3B Melvin Mora in his original starting lineup. He decided to start Roberts instead during the rain delay, and he made a nifty grab of a foul pop by Carlos Beltran while hanging over the dugout railing in the first inning.