La laguna è una rientranza del mare presso la foce dei fiumi Vistola, Nogat, e Pregolja. È separata dalle acque della baia di Danzica dal cordone litorale della Vistola (in russo:Балтийская коса; in polacco: Mierzeja Wiślana), una striscia di sabbia lunga circa 70 km, ed è ad essa collegata dallo stretto di Baltijsk. La penisola della Sambia, la separa a nord-est dalla laguna dei Curi.
La laguna della Vistola ha una lunghezza di circa 91 km, una larghezza che va dai 6,8 ai 13 km[1], una profondità media di 2,7 m e una massima di 5,2. La superficie totale è di 838 km², mentre lo sviluppo costiero è di 270 km. A sud-est dello stretto di Baltijsk si trova una piccola isoletta: Nasypnoj (остров Насыпной, 54°35′57″N 19°55′56″E54°35′57″N, 19°55′56″E)
Le località che sorgono sulla laguna sono Kaliningrad, Baltijsk, e Primorsk nell'oblast' di Kaliningrad della Russia e Frombork in Polonia. Il porto polacco di Elbląg fondava gran parte del suo traffico portuale sulla laguna, ma attualmente ha ridotto il transito delle navi a causa dell'attuale situazione dei confini. Kaliningrad e Baltijsk sono i principali porti marittimi nella laguna.
Un progetto polacco prevede di scavare un canale per collegare la laguna al mar Baltico: il canale, lungo 1 km, sarebbe in grado di riattivare il porto di Elbląg e lo libererebbe dalla sua dipendenza dalla Russia, che pretende i diritti sul passaggio delle navi polacche attraverso lo stretto di Baltijsk. Sono però anche in vaglio le conseguenze ecologiche: la costruzione del canale potrebbe anche distruggere la migrazione dei mammiferi della laguna e l'affluenza delle acque baltiche potrebbe rovinare l'ecosistema composto da acqua dolce della laguna.