Cole went 12-12 with a 4.26 ERA while making a career-high 33 starts in 2017. The Pirates and their top starting pitcher had avoided arbitration by agreeing to a one-year deal worth $6.75 million on Friday.
Cole has one year of arbitration remaining and could command a hefty salary bump in 2019, one of the reasons the Pirates had explored trading him in recent weeks.
News of the deal was first reported by Yahoo! Sports.
Information from The Associated Press was used in this report.