The 22nd seeded Russian came back from 3-0 down in the deciding set as seven-times grand slam champion Williams struggled to hold serve at Margaret Court Arena.
The 33-year-old Williams had conceded a decisive break in the second set with three successive double-faults and was powerless to prevent Makarova from sealing the match in a hurry.
Makarova brought up three match points with a big volley and closed it out when Williams blasted long on the second of them.
The Russian next faces American Irina Falconi.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
(Reporting by Ian Ransom; Editing by Peter Rutherford)
