It was the first walk-off hit for Puig, who raised his hands in the air as his line drive left the yard in a hurry.
"It's so exciting," said starter Chris Capuano, who tossed 6 2/3 scoreless innings. "We probably call it every time he comes up, but there was a number of us that said, 'Oh he's going deep right here,' and he came through. That was a bomb to end the game tonight."
The Dodgers improved to 9-1 since the All-Star break. They are 26-6 since June 22, the best record in the Major Leagues during that span and tied for their best 32-game stretch since 1977. Los Angeles extended its lead over Arizona in the National League West to 2 1/2 games with the D-backs' 1-0 loss to the Padres.
The Dodgers struck out 20 times, their most since the franchise moved to Los Angeles in 1958. The previous high was 18 on May 2, 1995, in a 15-inning loss at San Francisco. The Dodgers struck out 17 times through nine innings, tied for the most in L.A. history for a game that did not reach extra innings.
But Puig's 10th homer in 48 games erased all that.
"Even if three of those 20 strikeouts were mine, I just kept giving it everything I had," Puig said through translator Santiago Mazon.
"He's going to keep swinging, that's for sure," manager Don Mattingly said.
Puig's homer made a winner of Brandon League, his third victory in the past week. League, who lost the closer's role in June, fired two scoreless innings and hasn't allowed a run in his past four appearances.
"It feels good to be on the field, pitching and helping the team any way I can instead of sitting in the bullpen," League said.
Capuano set the tone for the Dodgers' pitching staff with his longest start at home this season. The left-hander struck out four, walked none and allowed three hits.
Ronald Belisario, Paco Rodriguez and Kenley Jansen combined for another 2 1/3 scoreless innings and did not allow any hits.
"Cappy was really good today," Mattingly said. "Beli did his job and kind of on down the line."
Capuano has been up and down since coming off the disabled list in June. Over his previous six starts entering Sunday, half were scoreless. But he'd given up five earned runs in each of the other three outings.
After a single by Joey Votto in the first inning, Capuano retired the next 13 batters he faced until Devin Mesoraco led off the sixth with a double. Two batters later, the Dodgers caught Mesoraco in a rundown between third and home to keep the game scoreless.
"I just tried to focus on continuing to make pitches and to finish guys when I got ahead in the count," Capuano said.
Reds rookie starter Tony Cingrani gave the Dodgers fits all afternoon. The left-hander struck out 11 against one walk over seven scoreless innings.
"He did his job and our pitching staff did their job," Reds manager Dusty Baker said. "We just have to score some runs."
Capuano had the only hit against Cingrani, a single up the middle in the third.
The Dodgers didn't have another baserunner until Puig walked to lead off the seventh. But Puig was erased when he was caught stealing second with Adrian Gonzalez at the plate.
Mark Ellis narrowly missed a home run in the third inning, when Chris Heisey hauled in his towering fly ball right in front of the fence in left field.
In addition to Capuano, the Dodgers had strong starting pitching the entire series. Hyun-Jin Ryu allowed one run on two hits in seven innings on Saturday. Clayton Kershaw fired eight innings of one-run ball on Friday. Zack Greinke was solid for seven innings Thursday, though he had a few costly mistakes that led to four runs and a loss.
The Dodgers have not lost a series since dropping two of three in Pittsburgh June 14-16.
"We're finding a way to win," League said. "It doesn't matter what happens. We have a feeling before the game starts that we're going to win. We've got a good thing going."