Cole was backed up by Neil Walker who clubbed a deadlock-breaking two-run double in the fifth.
A ninth career grand slam from Mark Teixeira – off the pitching off Felix Hernandez – helped the New York Yankees to a 7-2 win against the Seattle Mariners.
Teixeira struck in the fifth inning, whole Michael Pineda allowed two runs in the seventh.
The Los Angeles Dodgers clocked up 18 hits and four home runs as they beat the Colorado Rockies 11-4.
Andre Ethier, Howie Kendrick, Joc Pedersen and Jimmy Rollins all homered as the Dodgers dominated throughout.
A career-best 11 strikeouts from Jason Hammel was a stand-out for the Chicago Cubs as they beat the Miami Marlins 5-1, with Starlin Castro hitting a homer.
The New York Mets cruised to a 7-0 victory over the San Diego Padres, while Carlos Gomez scored the lone run as the Milwaukee Brewers edged the St Louis Rams 1-0.
George Springer and Evan Gattis homered with the bases loaded for a four-run seventh, giving the Houston Astros a 5-2 win over the Baltimore Orioles.
A second successive home run from Freddie Freeman and three hits from Andrelton Simmons got the Atlanta Braves an 8-1 success over the Arizona Diamondbacks, while Albert Pujols homered twice in a 7-3 success for the Los Angeles Angels over the Tampa Bay Rays – their fifth win in a row.
The games between Toronto and Washington and Minnesota and Boston were postponed.