The deal is worth $2 million, plus a possible $3 million in incentives, the Pittsburgh Post-Gazette reported.
The 38-year-old Vogelsong pitched for the Pirates from the middle of the 2001 season through 2006 before playing for the San Francisco Giants the past five seasons.
Vogelsong was an All-Star in 2011 when he finished 13-7 with a 2.71 ERA, but he has not been as successful the past three years. He posted a 9-11 record with a 4.67 ERA in 33 games, including 22 starts, in 2015.
In Pittsburgh, Vogelsong will join a rotation that includes Gerrit Cole, Francisco Liriano, Jon Niese and Jeff Locke.