The Pirates had trailed 1-0 since the first inning before finally forging a tie on Jose Tabata's solo shot off Cubs starter Scott Baker in the sixth. Byrd boosted Pittsburgh into the lead in the seventh when he powered a one-out solo homer to right field off reliever James Russell (1-6).
Cole (8-7) allowed just one run on five hits over seven innings, walking three and striking out seven for the Bucs, who pulled into a first-place tie with St. Louis atop the National League Central.
Tony Watson hurled a scoreless eighth and Mark Melancon secured the victory with his 15th save.
Baker, making his second start since returning from elbow ligament replacement surgery, surrendered one run on three hits over six innings for Chicago.
Nate Schierholtz supplied the Cubs' only RBI.