On January 25, 2013 the Royals designated Abreu for assignment as they made room on the 40-man roster for catcher George Kottaras.
On February 4, 2013, the San Francisco Giants claimed Abreu off waivers from the Kansas City Royals. He was placed on the 15-day disabled list on March 30, but would play in 53 games hitting .268 for the Giants during the 2013 season. The Giants released Abreu on March 23, 2014, prior to the end of spring training, but later re-signed him to a minor league contract, which he opted out of on July 21, 2014.