Free agent left-hander Ryan Yarbrough signed a one-year contract with the Kansas City Royals on Tuesday after spending the past five seasons with Tampa Bay.

The deal is for $3 million guaranteed, with an additional $1 million in performance bonuses, a source told ESPN's Kiley McDaniel.