The deal had been in the works and Upton needed a physical to finalize it. It's unclear yet what role Upton might have and when he could join the Giants to offer some depth in the outfield. He was released by Toronto at the end of spring training.
"He's got some pop," San Francisco manager Bruce Bochy said. "He's had some big years offensively. I talked to some people that saw him in spring and they said he had a pretty good spring training. He's a guy with a lot of experience. He's definitely worth taking a look at to see if he can help us."
The 32-year-old Upton would likely need some games initially with Triple-A Sacramento before joining the Giants. He batted .238 with 20 home runs, 15 doubles, three triples and 61 RBI while striking out 155 times in 149 games between the Padres and Blue Jays last season. He also stole 27 bases in 35 attempts.
The Giants could use some help in left field. San Francisco started three players there through the first nine games this season: Aaron Hill, Chris Marrero and Jarrett Parker. Gorkys Hernandez has also spent time in left.