The British designed artificial harbors called "Mulberries" which were concrete casements and a couple of scuttled ships to create breakwaters on the landing beaches precisely so supply and troop ships could safely offload right onto the beaches. Following the waves of troops meant to secure the beachheads were tractors to clear paths and trucks to carry supplies which arrived in enormous quantities.
The first objective after the beachheads were secured and linked up was to cut the Contentin Peninsula and seize Cherbourg and its deep water harbor (this was the reason Utah beach was added to the plan in 1943: to give the allies a good jumping point to secure the peninsula). After that the Allies knew they could rapidly build up and supply huge forces for the liberation of France, and that the Germans could do nothing to impede them because of their total control of the air and sea.
In fact, during the Allied advance following the breakout at St. Lo and the encirclement of the German 7th Army in the Falaise pocket it was a lack of supply keeping up with the advance that eventually slowed the Allies more than German resistance. The original pre invasion plan was to capture the channel ports as quickly as possible, but the German disintegration seemed so complete that most of them were cut off and besieged rather than captured, and the Allies were relying mostly on a stretched supply line reaching back to Cherbourg and the Normandy beaches which was not able to supply such a broad and swift advance.