Terms were not disclosed, but a source told the St. Louis Post-Dispatch that Flaherty will make $604,500 this season. The team's policy is to reduce a player's salary by $10,000 if the team has to renew a contract, but St. Louis paid Flaherty a $10,000 bonus for finishing fourth in National League Cy Young voting to offset the penalty, the newspaper reported.
This is the second straight season the Cardinals have renewed Flaherty's contract. He made $562,100 last season.
Last year, he criticized Major League Baseball's system for players not eligible for salary arbitration and rejected the Cardinals' offer. He took the $10,000 penalty so he would have it on record that he did not agree with the club's proposed salary for when he is eligible for arbitration in 2021.
Flaherty, 24, went 11-8 with a 2.75 ERA in 33 starts last season.
The Cardinals also announced they had signed 24 players not yet eligible for salary arbitration to one-year contracts on Sunday.