According to Sportitalia, the deal is worth €5m plus another €1.5m in add-ons.
The 30-year-old striker is now ready to sign the €2.5m per season contract.
This move has been close to completion for well over a week now, ever since Fenerbahce beat the competition from their Turkish rivals Galatasaray.
It was seemingly held up by a disagreement between Fenerbahce and Cagliari over how the payment would be made, specifically the number and frequency of instalments.
Joao Pedro found the net 13 times in 37 Serie A appearances last season, also contributing four assists, but was unable to prevent their relegation to Serie B.
He also received his first and probably only Italy cap, having gained Italian citizenship through marriage.