Julio Teheran didn’t require much assistance in the field Sunday night against the Giants, but when the Braves rookie pitcher needed it, slick glovework was provided. And so was Freddie Freeman’s hot bat.

Freeman had three hits, left fielder Justin Upton made a bases-loaded diving catch in the fourth inning, and Teheran and the Braves bullpen shut out the Giants 3-0 in a series finale at Turner Field.

The Braves won consecutive games to take the three-game series, following a four-game losing streak and a 2-5 road trip against the Dodgers and Padres. They moved their NL East lead back to 6-1/2 games over Washington, and improved their majors-best home record to 23-8, including 15-3 in the past 18 games.

“We picked ourselves up (Saturday) and battled back for a win,” Upton said, referring to a 6-5 win Saturday when the Braves scored two runs in the ninth inning. “That gave us a little bit of momentum going into today. We swung the bats pretty well and Julio pitched well.”

Three relievers pitched a perfect inning apiece for the Braves, with Craig Kimbrel notching his 19th save.

Teheran (5-3) wiggled out of trouble in each of his last three innings and allowed seven hits and one walk with eight strikeouts. He’s allowed two or fewer runs in seven of his past 10 starts, posting a 2.42 ERA and 54 strikeouts with eight walks in 67 innings during that period.

On an 0-and-2 count with two out in the first inning, Freeman singled to left field to score Andrelton Simmons for a 1-0 lead. Simmons had walked to start the first inning, one of five walks issued by Giants starter Tim Lincecum in six innings, including the leadoff man in each of the first three innings.

Freeman came in ranked second in the NL in average with runners in scoring position, which he raised to .456 (26-for-57). His .429 average with runners in scoring position and two outs also ranks among league leaders.

Robbed of a potential fourth hit by Gregor Blanco’s diving catch in the seventh inning, Freeman’s three-hit night gave him a .331 average and 34 RBIs in his past 40 games. The big first baseman has hit .370 in his past 23 games, including 12 multi-hit games.

Lincecum (4-7) gave up seven hits and three runs (two earned), including all three Freeman hits and resurgent B.J. Upton’s RBI double in the third inning for a 2-0 lead. B.J., who had two homers in Saturday’s 6-5 win, has six extra-base hits and eight RBIs in 14 June games, after totaling eight extra-base hits and eight RBIs in 46 games in April and May.

The Braves pushed the lead to 3-0 in the sixth when Ramiro Pena scored on Jordan Schafer’s squeeze bunt. Pena led off the inning with a single and reached third base on left fielder Andres Torres’ error when the ball glanced off his glove and rolled near the warning track.

Teheran retired 10 of the first 11 batters, including five consecutive strikeouts in a stretch that ended with Brandon Crawford taking a called third strike to lead off the fourth inning. That ended a string of 18 consecutive swinging strikeouts over three starts for Teheran, who had 11 strikeouts in eight scoreless innings against Pittsburgh on June 5, when the only hit against him was a two-out single in the eighth.

The Braves are 3-4 against the Giants this season, and Teheran has won both his starts against the defending World Series champions. The right-hander was 4-2 with a 2.13 ERA during an eight-start stretch before giving up five runs and two homers in six innings of a loss at San Diego last week.

Teheran bounced back from that with an impressive outing against the patient Giants, whose hitters had a major-league low 412 strikeouts before Sunday, 199 fewer than the Braves’ NL-leading total before Sunday.

“I know I wasn’t at my best my last start,” Teheran said. “I was trying to get back on track and keep doing what I’ve been doing my last 10 starts.”

He got into trouble in the fourth inning after giving up a one-out single to Buster Posey, a two-out single to Brandon Belt, and walking Andres Torres to load the bases.

That’s when Justin Upton came through with his best catch of the season at an opportune time. Joaquin Arias hit a pop to shallow left field that looked like trouble, but Upton raced in and dove, catching the ball with his glove extended.

“It had a little arc to it, so it was pretty safe ball to go after,” Upton said. “It’s two outs and bases loaded, you want to make that out. “I was in a full sprint, so I was hoping I could get there.”

The Giants loaded the bases again in the sixth, after starting the inning with consecutive singles by Posey and Hunter Pence. Teheran got two big strikeouts against Belt and Torres before Arias reached on an infield single. With the bases loaded and a 2-0 lead, Teheran coaxed a harmless pop fly to left by Nick Noonan to end the inning.

A crowd of 33,681 gave a standing ovation after the sixth-inning escape act by Teheran, who is 3-1 with a 1.57 ERA in his past five home starts, with 37 strikeouts and six walks in 34-1/3 innings.

“That’s the biggest thing I’ve been feeling, every time I go out there and they take me out (of the game),” Teheran said. “I feel the support from the fans.”