Under tiden som Karl XII stred mot Sachsen-Polen, tog Peter I tillfället att omgruppera och omorganisera sina trupper, och göra ett förnyat fälttåg mot de baltiska provinserna. Efter ryssarnas segrar vid Errastfer, Hummelshof och Nöteborg fick de tillgång till Ingermanland 1703, där Peter I erövrade den svenska fästningen Nyenskans som bevakade floden Neva. Där kunde han grunda staden Sankt Petersburg, döpt efter hans skyddshelgon aposteln Petrus. Tack vare general Adam Ludwig Lewenhaupts segrar mot ryssarna i slagen vid Saladen, Jakobstadt och Gemauerthof kunde Sverige behålla sina baltiska provinser, innan Karl XII skulle påbörja sitt . I juli 1708 korsade Karl XII den ryska gränsen och besegrade Peters styrkor i slaget vid Holowczyn. I slaget vid Lesna led Karl XII sin första förlust efter att Peter hade besegrat Lewenhaupts svenska armékår, som marscherade med nödvändig proviant från Riga. Ryssarna använde den brända jordens taktik för att nöta ner Karl XII:s huvudarmé, och en hård vinter drabbade hela Europa och fick åtskilliga soldater på båda sidor att frysa ihjäl. Karl XII var därmed tvungen att ge upp sin fortsatta marsch mot Moskva och i stället gå söderut mot Ukrainas bördiga slätter. I maj 1709 belägrade Karl XII den ryska staden Poltava, som under sommaren undsattes av Peter I:s armé. Den 28 juni samma år stod det avgörande slaget vid Poltava, där Peter I vann sin största seger mot Karl XII och, i samband med den svenska huvudarméns kapitulation vid Perevolotjna, markerade slaget början på Sveriges slutgiltiga nederlag i kriget och slutet för Sveriges tid som stormakt.