The US Open champion withstood a comeback from his Swiss opponent to come through 6-2 3-6 6-3 in just over two hours.
Murray began the matched strongly and broke Wawrinka's serve twice to win the opening set 6-2.
However, Wawrinka fought back at the start of the second set to take an early 4-1 lead, before he finally closed it out 6-3.
Murray saw two break points disappear in the fourth game of the decider before he struck on the third to break Wawrinka's serve with the assistance of a net cord.
Wawrinka troubled Murray's serve in the eighth game before the Olympic champion prevailed to take a 5-3 lead and he sealed victory with a forehand at the net.
Murray will play Canada's Milos Raonic in the semi-finals.