К началу войны в городе располагался полк НКВД, а также командный состав и комендантская рота штаба округа. 25 июня в городе начали формировать три рабочих батальона, численностью в тысячу человек, которые затем участвовали в рытье окопов, сооружении оборонительных укреплений, охране мостов. 27 и 28 июня в город начали входить разрозненные отступающие подразделения Красной Армии. Часть их задерживалась в городе с неким оружием, но большая часть уходила дальше. Всего в городе было около десятка легких танков и с полсотни орудий различного калибра. На вооружении защитников был даже бронепоезд. Однако централизованного командования ни войсками, ни обороной не было.
Сломанный советский танк на Земгальском мосту в Риге.
Подбитый советский танк на Привокзальной площади.
23-25 июня немецкая авиация мелкими силами бомбила Ригу и близлежащие военные аэродромы. Активное наступление на Ригу вела 18-я немецкая армия. 29 июня в район Задвинья подошли подразделения 26-го армейского корпуса. Отряды отходивших красноармейцев и отступавшие морские формирования вели бои на территории левобережья Даугавы, с целью прорваться на правый берег. Часто они принимали упорный и затяжной характер, дело доходило до штыковых схваток. Дабы обезопасить проникновение противника на правобережье, рабочие батальоны взорвали понтонный и Земгальский автомобильный мосты, и отошли на правый берег. Для того, чтобы подорвать третий, Железнодорожный мост, требовалось большое количество взрывчатки, которым защитники не обладали, поэтому укрепили его оборону. Тем не менее, 30 июня по этому мосту с ходу прорвался штурмовой немецкий отряд. В его составе было 5 САУ, 3 зенитных 88-мм орудия и одна противотанковая пушка. Поддерживало их до двух рот пехоты и взвод саперов. Этот авангард защитники города били всеми силами полдня. После уничтожения самоходок, уцелевшие немцы, ночью вернулись на правый берег. Избегая потерь, немцы начали готовить переправу в районе острова Доле, расположенного в 5-ти километрах от города, где отсутствовала какая-либо оборона. Ввиду опасности окружения в случае переправы противника через Доле, рабочие отряды покинули левобережную часть города. А 1 июля с города ушли и остатки 8-й армии. С учётом сложившейся ситуации, немецкие войска вечером 30 июня беспрепятственно форсировали Даугаву и заняли город.
Горожане встречают немцев.
Основные потери немцы понесли во время прорыва через железнодорожный мост. Они их оценили в 31 офицера и 551 солдата. Потери защитников города в хаотичных двухдневных боях до сих пор неизвестны. Поскольку советское командование приняло решение об отводе войск с рубежа Даугавы, Ригу не было смысла оборонять далее, да и некому было.