The world number seven had to fight back from a break down in the first set but went on to win it 6-4 in controversial circumstances.
The chair umpire, Cedric Mourier, examined the wrong mark and incorrectly called a long Nadal shot in, which handed the momentum to the Spaniard.
That appeared to frustrate Goffin who then lost 6-1 in the second set.
Waiting for Nadal in Sunday’s final is clay court specialist Albert Ramos-Vinolas of Spain, who reached the first Masters final of his career after a 6-3, 5-7, 6-1 win over Lucas Pouille.
The 15th-seeded left hander, beat world number one Andy Murray and fifth seed Marin Cilic en route to the semi-finals and will now face fellow Spaniard Nadal tomorrow.