Djokovic trailed 4-1 in the first set but then started playing with more controlled aggression and won six of the next seven games to take the set.
The Serb opened up a 3-1 lead in the second but Ferrer, playing on his 33rd birthday, stuck to his task and broke Djokovic when he was serving for the match at 5-4.
However, the top seed broke straight back to give himself another chance to wrap up the contest, which this time he made sure of.
“I had to earn my points. I had to fight for everything that I got on the court because he wasn’t going to give it to me,” said Djokovic, who expected a close battle with Isner.
“John is probably the best server we have in the game currently. At his height he can hit any angle he wants with that serve. He is obviously very confident playing here. He played great against (Kei) Nishikori today.”
The six feet 10 inches (2.08 metres) tall Isner delighted home fans when he blasted his way to a 6-4 6-3 win over Japan’s fourth-seed Nishikori.
Isner never faced a break point during a dominant display where he held a 33-5 edge in winners and blasted 13 aces past his fourth-seeded opponent, including a rocket to close out the one-sided contest in a shockingly quick 70 minutes.
Nishikori had dropped just 10 games and broken opponents’ serve 15 times en route to the quarter-finals but could not manage single break opportunity against the towering Isner.
Isner is bidding to become the first American to lift the Miami title since Andy Roddick in 2010 but knows Djokovic is a major obstacle.
“I have nothing to lose,” he said. “He is the greatest player in the world right now, hands down. I played well against him last week in Indian Wells and he beat me in a tight two set match.
“I am going to have to bring that level and then some. I believe I can do that,” added the American.
Friday’s other semi-final sees Andy Murray face Czech Tomas Berdych.