The ASP.NET page lifecycle begins with Init (control initialization), followed by Load (controls populated with data), then PreRender (final state adjustments before rendering), and ends with Unload (cleanup). This sequence ensures controls exist before Load runs, and gives developers a final opportunity in PreRender to modify the page before it renders to HTML.