Paul Warne’s side who have surged into the top six after an impressive run since December, lost for just the third time in that period as they went down at Roots Hall.
Rotherham thrashed the Shrimpers 5-0 in the return fixture but Chris Powell’s side got their revenge on Saturday.
Southend went ahead after seven minutes when Simon Cox played in Stephen McLaughlin to score with a neatly controlled left-foot shot.
Rotherham goalkeeper Lewis Price then stopped Marc-Antoine Fortune making it 2-0 when the striker was clean through on goal, before David Ball fired wide for the Millers.
Southend goalkeeper Mark Oxley denied Richie Towell from long range before the hosts doubled their lead in the 80th minute when Cox beat Semi Ajayi before netting with a low shot for his first goal since Boxing Day.
Michael Smith and Richie Towell had efforts to pull a goal back denied by goalline clearances in the dying moments.