Want to know how odd this season has been? After the Giants beat the Marlins 5-3 on Saturday night, winner Tim Hudson talked about doing "what it takes to win ballgames, and get back into the race, and try to right the ship."

Back into the race? Right the ship? The Giants have the best record in the National League again.

They had a 9-22 stretch, yet all they needed to reclaim sole possession of first place in the NL West and the league's best record at 54-43 was their first three-game winning streak in five weeks.

Hudson pitched into the eighth inning and ended his four-game losing streak, while Pablo Sandoval continued to ratchet up his average with three hits, including a double and single that started scoring rallies. Hunter Pence added a two-run single.

"We're focused," Sandoval said. "We know we've got a great team no matter who's out there. It's special to see everyone contribute in the game."

The Giants even got a big hit from a guy who took an accidental baseball to the face a short time earlier and headed for a concussion test after the final out because he still felt dizzy with a headache.

Manager Bruce Bochy said there was a "miscommunication" during batting practice and two guys threw balls at once to Brandon Belt. One hit Belt squarely in the face.

Belt retreated to the clubhouse to be checked, but he emerged to take his cuts in the cage and started the game. After Sandoval doubled to open the second against Henderson Alvarez, Belt warded off the symptoms and lined a double into the right-field corner to tie the game 1-1.

Belt then scored on a comical play - an Alvarez fastball went to the backstop, Jarrod Saltalamacchia recovered the ball and threw it into left field trying to get Belt, who then scored ahead of Christian Yelich's throw, which also reached the backstop.

Belt left after the top of the third inning, shortly after Alvarez was forced out by a Joe Panik comebacker that drilled him in his left shin.

"He got a big hit to get us going and he started to complain of headaches, nausea, dizziness," Bochy said of Belt. "We're hoping he passes the test. He just missed all that time."

Either way, Belt will not play Sunday. Buster Posey will be at first with Hector Sanchez catching Tim Lincecum as usual as the Giants attempt their first sweep at Marlins Park.

Lincecum will try to keep the rotation rolling after Madison Bumgarner and Hudson each allowed one run. Things could have been worse for Hudson after Yelich and Jordany Valdespin started the first inning with singles to bring up Giancarlo Stanton.

Asked what went through his mind right then, Hudson said with a hint of whimsy, "You really want to know?"

Hudson got Stanton to bounce into a double play. Casey McGehee hit a two-out RBI single, the only run Hudson allowed.

"Obviously that's not exactly how you want the game to get started," Hudson said. "The first two guys get a hit and him coming up. That double play was heaven-sent for sure."

Stanton homered for the second consecutive night, but again in a situation that really was not costly, leading off the ninth against Sergio Romo. That gave Stanton the same number of RBIs as Hudson, who got his first as a Giant upon drawing a bases-loaded walk in the fourth.