Той же весной Петр I, согласно договору о дальнейших совместных планах войны против шведов во время личного свидания с Августом II в литовском городке Биржи 26 февраля (9 марта) 1701 г., отправил из Пскова под Ригу на помощь тому прекрасно вооруженный и экипированный 20-тысячный русский корпус князя Аникиты Ивановича Репнина: 18 солдатских и 1 стрелецкий пехотные полки. Через полтора месяца, он оказался под Кокенгаузеном. Там остались его главные силы, а под Ригу к фельдмаршалу Штейнау князь отправил лишь 4 тыс. чел.
Тем временем, Карл XII, к которому к июню из Швеции прибыло 10 тыс. новых рекрутов, пополнивших армию Карла до 24 тыс. чел., разработал план разгрома неприятеля. Он собрался заставить противника раздробить свои силы по течению реки, и, форсировав Двину близ Риги, разгромить союзников по частям. Главным было то, чтобы противнику не было известно, в каком месте шведы соберутся пересекать реку. Там, где они намеревались переправиться, она достигала в ширину всего лишь 600 метров.
За саперное обеспечении переправы отвечал 76-летний генерал-губернатор Риги Дальберг.
Все передвижения подразделений в русско-саксонском лагере были под контролем шведов, которые наблюдали за левобережьем с колокольни Домского собора. Незаметно для саксонцев было приказано собрать на рижском городском канале все баржи, буксиры, барки и плоты, а также отыскали много возов старой соломы и прелого сена, чтобы в нужный момент закрыть Даугаву дымовой завесой. Для переправы кавалерии было начато строительство понтонного моста.
17 (28) июня 1701 г., в день своего 19-летия, Карл с основными силами в 18 тыс. чел. в неимоверную жару двинулся из Дерпта на юг. Ему предстояло пройти ок. 250 км. Движение происходило максимально осторожно, чтобы врагу не стало понятно в каком месте – у Риги или Кокенхаузена – шведы будут проводить переправу.
Саксонский командующий, понимая, что Карл вот-вот окажется на Двине, и не зная, где противник предпримет форсирование, разбросал свои войска вдоль нее небольшими отрядами. По мере получения донесений разведки, он то и дело передвигал свои полки вдоль Двины, чтобы не пропустить противника. На случай попытки шведов перейти Двину у Риги, Штейнау распорядился занять под городом, лежащие у левого берега островки. Один из которых (Люцау) занял небольшой отряд (ок. 300 чел.) русских войск: они почти полностью погибнут в жестокой схватке со шведами сразу после сражения на Двине.