Despite the world number 114 causing moments of tension, Djokovic had enough quality to win 6-3 6-4 6-2.
The 33-year-old Serb won the final four games to finally shrug off Karatsev.
Djokovic, who is going for a record-extending ninth men's title in Melbourne, will face Daniil Medvedev or Stefanos Tsitsipas in Sunday's final.
Russian fourth seed Medvedev meets Greek fifth seed Tsitsipas in the other semi-final on Friday, with both men trying to reach their first Australian Open final.
Neither player has won a major title yet and will face an opponent in Djokovic who is bidding for an 18th Grand Slam to close the gap on Roger Federer and Rafael Nadal.
Djokovic has struggled with an abdominal injury during the tournament but showed no signs of the problem against Karatsev.
"This is the best I have felt in the entire tournament. It felt great, I could swing through the ball and no pain," he said.
"It was my best match so far and came at the right time. I'm thrilled."