Отделяет Петроградскую сторону от Каменного и Крестовского островов. Впадает в Невскую губу вместе с Малой Невой между Петровским и Крестовским островами.
Длина около 5,1 км[2], ширина 120—300 метров, глубина 3,5—7 метров. Среднегодовой расход воды — в истоке 224 м³/с.
Имеет притоки (оба левые) — Карповку и Ждановку. В средней части от Малой Невки вправо отходит река Крестовка, далее впадающая в Среднюю Невку напротив Елагина острова.
Левый берег в верхней части течения реки обустроен и одет в гранит (набережные Песочная и Адмирала Лазарева). Правый берег с целью предотвращения размытия укреплён деревянными конструкциями.