The world number 24 snapped Djokovic's 13-match winning streak in Doha to pick up his first win over the Serb since 2016. Bautista Agut will face wild card Tomas Berdych in Saturday's final.
Djokovic will head to Melbourne in preparation for the season's first major at the Australian Open having seen his streak of five straight tournament finals stopped.
Djokovic wins routine first set
It looked to be a comfortable start for the world number one as he held to love and reached break point on the Bautista Agut serve only to see the Spaniard peg him back.
At the second time of asking, the Spaniard saw a backhand drift wide to hand Djokovic the initiative and a 2-0 lead with another comfortable hold stretching it to 3-0.
The next four games went by with each man dropping one point on serve until Bautista Agut saved a set point at 5-2 and would battle to hold. Attempting to serve out the set, Djokovic fell behind 0-30, but rallied to win the next four points., clinching the set with a good serve.
Bautista Agut fights to claim second set
Bautista Agut would get his first chances to break in the fourth game of the second set, a forehand winner setting up 15-40. Djokovic would rally to save both and hold, maintaining a firm grip on the match.
It looked to be headed the Serb's way after the world number 24 netted a backhand at 0-40 down. With a 4-3 lead, Djokovic could see the finish line, but in a surprise, Bautista Agut broke back as the world number one floated a forehand wide.
The Spaniard would have more chances to break and send the match to a third set only to see Djokovic save the first opportunity with an ace in the 10th game and two more in a marathon 12th game to send the set to a tiebreak.
The server won the first ten points of the breaker with Bautista Agut breaking through first, forcing a Djokovic miss on the backhand wing. The Serb would save set point with a crunching forehand to draw an error and level at 6-6. His backhand clipped the tape and fell on his side to give the world number 24 the set and send the match to a third set.
Spaniard takes early lead in third set, holds on to win match
The pressure was on Djokovic immediately in the deciding set as he fell behind 15-30 on serve, wasting a game point and watching as Bautista Agut smacked consecutive forehand winners from deuce to crucially break.
The Spaniard was solid on his own serve, holding to 15 in his next two service games for a 3-1 advantage. Dictating play from the baseline at this point, another easy hold, this to love, put Bautista Agut two games from the upset as he moved ahead 4-2.
The world number one was faced with another pressure point as he was taken to deuce, but his forehand producers two winners in a row to hold and maintain contact. He could do very little still on the Spaniard's serve, an ace taking him to within a game of victory.
Djokovic would survive another deuce game to pull to within 5-4 and force Bautista Agut to serve out the upset. Arriving at match point courtesy of the Serb misfiring on a backhand, the Spaniard sealed the upset after the world number one netted a forehand.
Bautista Agut post-match thoughts
"I will remember this match all my life", Bautista Agut said after the win. I work every day to play this tennis. I know it's difficult to play at this level. That's why Novak is number one in the world. I cannot be more happy than I am now".
He continued by saying "I wanted to give everything I had and fight until the last point. Finally I could turn the second set. Novak was up and it was really tough. He was very solid and I had to play very good tennis. I had to play a lot of lines and serve very well. I did everything well today".