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 on Friday by agreeing to a one-year deal worth $6.75 million.
Cole, 27, 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.