The Argentinian looked all-but beaten after losing the opening set and trailing 3-1 and 4-2 in the second before turning it around to dent Evans’ hopes of climbing into the ATP’s top 20.
Evans was broken to go 3-1 down in the opening set, but from 5-2 down he found another level and reeled off the next five games to take it 7-5 after one hour and two minutes.
Evans, who came from behind to defeat Kei Nishikori 4-6 6-3 6-4 in the second round on Sunday, broke Schwartzman for the third time at the start of the second set and then held to lead 2-0.
Schwartzman stopped the rot after losing seven games on the spin by holding to make it 2-1, but had to stave off another break point in the fifth game.
Both players then held serve and with Evans serving to go 5-3 up, while two unforced errors handed the initiative back to Schwartzman, who broke serve to level it up at 4-4.
Evans failed to cash in on two more break points and trailed in the second set for the first time at 5-4 down before being broken again to lose it 6-4.
Schwartzman was energised at the start of the decider and the tide turned as he broke Evans to move into a 3-0 lead.
Evans had lost his way – both physically and in terms of shot execution – and further errors saw him lose serve again to fall 4-0 behind.
Schwartzman held to love for a 5-0 lead and his comeback was complete when he broke Evans for a third time in a one-sided final set.