It is a three-year deal for up to $27 million with a $11.5 million injury guarantee, the source said.
Curry, 29, had been cut by the Eagles on Friday to free up cap space. He was due to make $9 million in 2018. The team also explored trade options before the release.
To make room for Curry, the Bucs cut Robert Ayers, who was entering the third and final year of a three-year pact with the Bucs. He was set to make $6 million, including a roster bonus due on the fifth day of the league year.
Ayers produced 2.0 sacks in 12 games in 2017, as the Bucs finished the year with just 22 total sacks, last in the league. The previous year, Ayers had 6.5 sacks in 12 games.
Curry has not missed a regular-season game in four years, with 22 sacks since 2012. His best season came in 2014, when he finished with 9.0 sacks. Last year, he had 3.0 sacks but managed 41 quarterback hurries.