Карла XII говорил: «Нет никакого удовольствия биться с русскими, потому что они не сопротивляются, а бегут». Самоуверенный король во главе армии остался зимовать в Дерите. Через девять лет он будет зимовать под Стамбулом, уже без разбитой русскими своей армии.
За зиму Петр и его соратники привели в порядок армию. Были набраны новые полки, на всех литейных заводов России отлили двести пятьдесят пушек высокого качества. «Птенцы гнезда Петрова» работали день и ночь. Сам Петр был везде. Его письма и распоряжения часто подписывались: «писано в дороге, на лошади».
К лету 1701 года Карл XII, полный пренебрежения к Петру, разбил в Польше саксонскую армию. Несколько лет шведский король гонялся за Августом по Польше и Саксонии, оставив в Прибалтике пятнадцатитысячный корпус Шлиппенбеха. В сентябре 1702 года Петр начал завоевание Ингрии, пытаясь выйти на берега Финского залива.
11 октября 1702 года петровские полки взяли Нотебург, ставший Шлиссельбургом — «городом-ключом». Перед ним лежала Нева. 1 мая 1703 года войска Петра взяли Ниеншанц, запиравший устье Невы, впадавшей в Финский залив. Ниеншанц был срыт. 16 мая 1703 года ближе к устью Новы была заложена Петропавловская крепость, а под ее стенами — город Петрополь, вскоре названный Санкт-Петербургом. Через десять лет этот город стал столицей России.
Все течение Невы оказалось русским. Русские войска взяли крепости Ям и Копорье. В июле 1703 года Петр отбросил шведский корпус к Выборгу. В течение зимы на отмели у острова Котлин в Финском заливе была построена крепость Кронштадт. Весной 1704 года под защиту ее батарей встала российская морская эскадра, построенная на Олонецкой верфи. В течение 1704 года русские войска несколько раз отбрасывали шведов от маленького Санкт-Петербурга. Кронштадт, Петербург и Шлиссельбург надежно охраняли выход России к Балтийскому морю. За лето 1704 года войска Петра взяли Дерпт, Ивангород и Нарву. Во вторую осаду нарвскому коменданту А. Еорну было уже не до смеха. Значительная часть балтийского побережья была возвращена России.
Адмиралтейская верфь Петербурга приступила к строительству морских кораблей. Карл XII, получив известие о строительстве города, нагло заявил: «Пусть царь трудится над закладкой новых городов. Мы хотим лишь оставить за собой честь впоследствии забрать их». Через шесть лет шведский король попытался забрать построенную задолго до Петербурга Полтаву. Под этим украинским городом король потерял и европейскую славу, и лучшую в Европе армию. Карл XII, как и Наполеон I не интересовались историей России, государи которой за три столетия до Петра I говорили татаро-монгольским ханам: «Не ходите на Русь — здесь живет ордынская смерть».
Весной 1705 года войска Петра I вступили на землю Речи Посполитой. В начале сентября 1706 года Карл XII разбил Августа II под Лейпцигом. По Альштадскому мирному договору со шведами саксонский курфюрст отказался от польского трона и от союза с Россией. В начале января 1708 года Карл XII во главе армии начал поход на Москву.
Шведский король громогласно заявлял, что примет капитуляцию Петра только в Москве. В июле 1708 года шведская армия отбросила у Головчина корпус Шереметева и подошла к Могилеву. Карл XII ждал из Риги пополнение и громадный обоз с оружием и продовольствием. На пути шведской армии русские войска уничтожали фураж, портили дороги, яростно защищали переправы. Населению было предписано прятать продовольствие. Военный совет русской армии постановил генерального сражения не давать.
Шведы не стали ждать Левенгаупта и в начале августа 1708 года двинулись на Смоленск. У Мстиславля их ждала полностью укомплектованная и реорганизованная русская армия. 30 августа у местечка Доброе произошел жестокий бой, длившийся около трех часов. Русские войска во главе с А. Меншиковым и М. Голицыным первый раз в Северной войне отбросили шведов.
7 сентября 1708 года русская и шведская армия встали друг против друга на границе России и Речи Посполитой. Левенгаута с обозом до сих пор не было, а также проводимая русскими тактика выжженной земли ставила шведские войска в очень сложное положение. Карл понял, что по смоленской дороге ввиду неизбежных продовольственных затруднений, идти невозможно. Отступить за Днепр и там дожидаться Левенгаута он считал для себя позором. В середине октября Карл XII остановил армию недалеко от Стародуба, у переправ через Десну. Король так и не дождался Левенгаута. Вместо патронов, пороха и окороков Карл XII получил сообщение о разгроме пополнения и обоза, узнав о существовании белорусской деревни Лесная.
Не дожидаться медленно ползущего обоза из восьми тысяч телег, даже в сопровождении пятнадцати тысяч шведов, было стратегической ошибкой Карла, и Петр наказал зарвавшегося шведского короля. Он не мог допустить соединения сорокатысячной армии Карла и огромного обоза с пятнадцатитысячным пополнением. Левенгаута было необходимо остановить до соединения с королем.