Gulbis - who knocked out 17-time grand slam champion Roger Federer in the fourth round - claimed another scalp at Roland Garros with a 6-3 6-2 6-4 win against the sixth seed.
The Latvian, seeded 18th, had never previously reached a grand slam semi-final, but achieved the feat with a comfortable win that took him less than two hours to complete.
He will now meet world number two Novak Djokovic for a place in the final, after the Serb beat Milos Raonic in three hard-fought sets.
Gulbis set the tone quickly, racing to a 4-0 lead in the opener as he clinched his double break thanks to a sublime top-spin lob.
And although Berdych hit back with a break of his own immediately, Gulbis comfortably saw out the set, saving a break point in game nine before converting his first set point.
He carried his momentum into the second set, breaking his opponent in the first game with a simple forehand winner.
Another break followed, as he moved into a 4-1 lead after a Berdych double-fault, while Gulbis was outstanding on first serve, winning 11 of 12 points.
An ace from Gulbis wrapped up the second set and Berdych was again broken in the first game of the third set after he mis-hit a backhand.
The set continued on serve, as Gulbis - who finished with 31 winners - continued to impress.
And he claimed victory when Berdych sent a backhand into the net to end the 10th game, as Gulbis' charge continued.