In the 53rd career meeting between the two players, Djokovic, the No. 12 seed, held on for a 6-4, 3-6, 7-6 (9), 3-6, 10-8 victory Saturday on Centre Court at the All England Club.
Djokovic, who has 12 Grand Slam titles, also improved to third all-time with his 13th career victory against a player ranked No. 1 since the world rankings were introduced in 1973.
Nadal and Boris Becker are tied for first with 19.
The total match time was 5 hours, 15 minutes, making it the second-longest semifinal match in terms of duration in Wimbledon history.
Djokovic will face No. 8 seed Kevin Anderson on Sunday for the title.