The Dodgers won for the 12th straight time on the road and will attempt to set an all-time team mark in that category on Saturday when they again meet the Cubs.
Punto broke a 1-1 tie with an RBI double and he also had a sacrifice fly in the fifth to deliver the final run of the game.
Yasiel Puig went 2-for-3, scored once and drove in the Dodgers' first run in the opening inning with a single. His batting average climbed to .371.
Hyun-Jin Ryu (10-3) gave up 11 hits in 5 1/3 innings, but surrendered only two runs while surviving 5 1/3 innings. He has not suffered a loss since June 19.
Travis Wood (7-8) was touched for five runs on seven hits and five walks in 3 1/3 to take the loss.
The Cubs outhit the Dodgers 14-9, but lost their third in a row.
Trader Joe's: Car crashes into Long Island store, injuring 11
Wisconsin business offering 'therapeutic cuddling' forced to close