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.
Pistorius testifies he didn't consciously pull trigger when he shot girlfriend
Pregnant Mila Kunis wins 'Best Villain' at MTV Movie Awards