"It's ongoing," said Bobby Evans, the Giants' director of player personnel. "It's not finalized."
Several issues were still to be worked out.
The 22-year-old Cain, coming off an impressive rookie season and considered San Francisco's ace of the future, is slated to be the club's No. 2 starter this season behind left-hander Barry Zito. Cain's contract will be comparable to the deal left-hander Noah Lowry received last spring: $9.25 million for the same number of years.
Cain led all rookies with 13 wins and 179 strikeouts last season, going 13-12 with a 4.15 ERA in 190 2/3 innings, finishing in a tie for fourth place in NL Rookie of the Year voting. Cain, who also had a team-high for wins, pitched a one-hitter in a 6-0 victory over the Oakland Athletics on May 21.
He went 1-5 with a 7.04 ERA over his initial seven starts and had his turn in the rotation skipped during a May trip to Houston so he could work some things out. After that, he was impressive: 12-7 with a 3.34 ERA in his final 24 outings after May 16, including two innings in relief.
General manager Brian Sabean heard requests all winter from teams interested in acquiring Cain, but the Giants were committed to keeping their talented young pitchers.
The San Francisco Chronicle first reported Cain's new deal.