Romero, 30, a free agent, was released by the Blue Jays earlier this season.
He compiled a 51-45 record with Toronto, with a 4.16 earned-run average in four-plus seasons. Selected in the first round of the 2005 draft (sixth overall), Romero, a Los Angeles native, first reached the major leagues in 2009, putting up a 13-9 record with a 4.30 ERA.
Romero improved to 14-9 in 2010, wth a 3.73 ERA and was selected to the All-Star game in 2011. That year he was 15-11 with a 2.92 ERA and was named the American League pitcher of the month for August.
He suddenly lost control of his pitches in 2012, falling to 9-14 with a 5.77 ERA, and after starting 2013 at 0-2 with an 11.05 ERA was sent to the minors by the Blue Jays.
There he battled injuries and was mostly ineffective for Triple-A Buffalo with a 5-8 record and 5.78 ERA in 2013. He struggled again in 2014, going 0-3 with a 5.50 ERA, and had double knee surgery. The Blue Jays bought out his contract this spring for $600,000 US
Romero is expected to begin in extended spring training for the Giants. Terms of the contract have not been released.