Ukraine's Dolgopolov, ranked 31st in the world and seeded 28th in the first Masters tournament of the year, notched his first victory over the Spanish superstar after five prior defeats.
The most recent of those was in the claycourt final at Rio de Janeiro two weeks ago.
Dolgopolov next faces Italy's Fabio Fognini, a 6-2, 3-6, 7-5 winner over France's Gael Monfils.
Nadal had reached the semi-finals at Indian Wells every year since 2006, winning the title in 2007, 2009 and last year. (Also read: Maria Sharapova ousted at Indian Wells)
Down a break at 5-3 in the third, Nadal broke Dolgopolov to get the get back on serve and from there they went to the tiebreaker.
Dolgopolov kept his composure on the first match point, when he initially thought he had won the contest with a service winner only to see that call overturned on a challenge from Nadal.
He put his second serve in play, and sealed the win with a blistering forehand that Nadal couldn't get back.
Alexandr Dolgopolov stuns Nadal at Indian Wells
Advertisement