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.
Millions of Getty images now available for free via embed tool
Ray Liotta sues skin care company over use of likeness