Sale sharp again as White Sox beat Astros