Humber had retired 24 Mariners in a row entering the bottom of the ninth and went to a 3-0 count on Michael Saunders leading off the frame, but came back to strike him out.
The 29-year-old right-hander then got Miguel Olivo on a pop-out to right field for the second out.
He worked pinch-hitter Brendan Ryan to a 3-2 count before inducing him to swing and miss on the third strike. Catcher A.J. Pierzynski dropped the ball, picked it up, and fired to first for the final out, triggering a wild celebration.
Humber (1-0) threw 67 of his 95 pitches for strikes, striking out nine.
It was the third perfect game in White Sox history, coming only three years after Mark Buehrle tossed one against Tampa Bay.
M's starter Blake Beavan (1-2) surrendered three runs on seven hits over six innings.
McPhee, Cokas 'working on their marriage' after affair
LGBT community has 'bullied the American people': Bachmann