Paul Hurst's side lifted themselves six points clear of fourth-bottom Port Vale, who have two games left but a goal difference 11 inferior to Shrewsbury.
Shrewsbury started brightly with an inviting cross from Joe Riley drifting just wide before Stefan Payne's low shot was turned wide by goalkeeper Christian Walton.
Will Atkinson's header was comfortably gathered by home goalkeeper Jayson Leutwiler as Southend started to carry more of a threat and then Ryan Leonard's shot was deflected narrowly wide by Brown.
Nile Ranger went close twice at the start of the second half for Southend, who remain a point outside the play-off places, and then Simon Cox saw a shot pushed away by Leutwiler.
Shrewsbury, up to 18th in the table, grabbed the winner in the 64th minute when left back Brown headed in a corner from Shaun Whalley to spark jubilant scenes at the final whistle at the Greenhous Meadow.
Match report supplied by the Press Association.
Match ends, Shrewsbury Town 1, Southend United 0.
Second Half ends, Shrewsbury Town 1, Southend United 0.
Attempt saved. Jason Demetriou (Southend United) right footed shot from the centre of the box is saved in the centre of the goal.
Corner,  Shrewsbury Town. Conceded by John White.
Corner,  Shrewsbury Town. Conceded by John White.
Foul by Jermaine McGlashan (Southend United).
Aristote Nsiala (Shrewsbury Town) wins a free kick in the defensive half.
Jayson Leutwiler (Shrewsbury Town) is shown the yellow card.
Corner,  Southend United. Conceded by Junior Brown.
Attempt blocked. Bryn Morris (Shrewsbury Town) right footed shot from outside the box is blocked.
Attempt saved. Theo Robinson (Southend United) right footed shot from the centre of the box is saved in the centre of the goal.
Substitution, Shrewsbury Town. Gary Deegan replaces Ryan Yates.
Substitution, Shrewsbury Town. Stephen Humphrys replaces Alex Rodman.
Corner,  Southend United. Conceded by Mat Sadler.
Jason Demetriou (Southend United) wins a free kick on the left wing.
Foul by Junior Brown (Shrewsbury Town).
Foul by Marc-Antoine Fortuné (Southend United).
Junior Brown (Shrewsbury Town) wins a free kick in the attacking half.
Substitution, Southend United. Marc-Antoine Fortuné replaces Michael Timlin.
Substitution, Southend United. Theo Robinson replaces Nile Ranger.
Attempt missed. Jermaine McGlashan (Southend United) right footed shot from outside the box is high and wide to the left.
Corner,  Southend United. Conceded by Junior Brown.
Substitution, Southend United. Jermaine McGlashan replaces Stephen McLaughlin.
Goal!  Shrewsbury Town 1, Southend United 0. Junior Brown (Shrewsbury Town) header from very close range to the centre of the goal. Assisted by Shaun Whalley with a cross following a corner.
Corner,  Shrewsbury Town. Conceded by John White.
Nile Ranger (Southend United) wins a free kick in the defensive half.
Foul by Bryn Morris (Shrewsbury Town).
Attempt missed. Michael Timlin (Southend United) right footed shot from outside the box is high and wide to the left.
Nile Ranger (Southend United) wins a free kick in the defensive half.
Foul by Mat Sadler (Shrewsbury Town).
Attempt saved. Simon Cox (Southend United) right footed shot from outside the box is saved in the centre of the goal.
Foul by Joe Riley (Shrewsbury Town).
Stephen McLaughlin (Southend United) wins a free kick in the attacking half.
Attempt missed. Nile Ranger (Southend United) right footed shot from outside the box is just a bit too high.
Corner,  Southend United. Conceded by Jayson Leutwiler.
Attempt saved. Nile Ranger (Southend United) right footed shot from the centre of the box is saved in the bottom left corner.
Second Half begins Shrewsbury Town 0, Southend United 0.
First Half ends, Shrewsbury Town 0, Southend United 0.
Foul by Abu Ogogo (Shrewsbury Town).
Anton Ferdinand (Southend United) wins a free kick in the defensive half.
Junior Brown headed the winner as Shrewsbury moved to the brink of League One safety with a victory over Southend.