Hudson lifts White Sox past Blue Jays, 4-3