Cole (10-7) yielded two runs on seven hits, walking one and striking out six for Pittsburgh, which has already clinched at least a National League wild card spot.
The hurler also supplied a two-run single in the win, which kept the Bucs within two games of National League Central-leading St. Louis with five contests left to play.
Cubs starter Chris Rusin (2-6) was knocked around for four runs on six hits over 2 1/3 innings.
Starling Castro went 2-for-4 with an RBI for Chicago.
Kate Middleton recycles dress at movie premiere
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'