Garland was 12-11 in 34 games last season, 33 of them starts. His ERA was a high 4.89, but he had a career-high 113 strikeouts and pitched at least 200 innings for the first time in his five-year career.
He has won 12 games in each of the past three seasons and has a lifetime record of 46-51 with a 4.68 ERA.
"I'm a lot better pitcher than what I've shown the last two years," the 6-6, 215-pound Garland said on the team's Web site. "Only time will tell how I end up. I'm (still) not happy with the way I've thrown the ball."
Garland earned $2.3 million in 2004, and also matched his career high in wins and starts.