The contract reportedly includes $2.5 million in incentives, meaning the total value could reach $6 million, Heyman adds.
The Chicago White Sox non-tendered Garcia in November after failing to find a trade partner.
An All-Star in 2017, Garcia took a step backward in 2018, slashing .236/.281/.438 with 19 home runs. He was limited to 93 games by a lingering hamstring injury that landed him on the disabled list on multiple occasions.
The 27-year-old will provide extra right-handed power in the Rays' outfield, though it's a crowded situation with Kevin Kiermaier, Tommy Pham, Austin Meadows, and Guillermo Heredia already in the mix.