The left-hander struck out six as the White Sox won a second straight over the Yankees after ending a 10-game losing streak.
Nate Jones got the final two outs in the eighth but closer Addison Reed struggled in the ninth, yielding a run-scoring single to Gardner before fanning Alfonso Soriano to end the game for his 27th save.
De Aza went 2-for-4 with an RBI while Paul Konerko and Conor Gillaspie each knocked in a run for Chicago.
New York's Hiroki Kuroda (10-7) absorbed the loss, allowing three runs on nine hits over seven full innings.
Alex Rodriguez, playing in his second game of the season while appealing a 211-game suspension, went 1-for-2 with a single and a walk as the Yankees lost for the seventh time in 10 games.