Wawrinka looked comfortable in the first two sets, but was made to work for the 7-6 (7-2), 6-4, 4-6, 7-6 (10-8) win on Margaret Court Arena.
The Swiss star got past Garcia-Lopez in a tie-break in the first set, then held serve and broke Garcia-Lopez to do on and win the second set 6-4.
The match looked set to finish in straight sets when Wawrinka broke the Spaniard again in the third, only for Garcia-Lopez to break the Swiss serve twice to take the third set 6-4.
The fourth set went to a tie-breaker without a service break but there were mini-breaks for both players in the tie-breaker.
Wawrinka fought back to win the deciding tie-breaker 10-8 to set up a clash with the winner of David Ferrer's clash with US Open finalist Kei Nishikori.