Southend United 0 Bristol Rovers 1
Rovers had a good shout for a penalty when Peter Clarke fouled Chris Lines in the 13th minute, but the referee awarded only a free-kick on the edge of the box, which Stuart Campbell put over the bar.
It was the Pirates who had the better chances of a dour first half, twice forcing saves out of Blues goalkeeper Steve Collis.
The first came after 21 minutes when Craig Hinton's 16-yard effort from Lines' pass was turned out for a corner by Collis.
Sammy Igoe saw his driven shot deflect narrowly wide of the right post before Collis parried the winger's 25-yard effort on 44 minutes.
Southend failed to register a shot on target in the first half, with Kevin Maher, Dean Morgan and Charlie MacDonald all firing wide.
Shrimpers midfielder Nicky Bailey got the second half underway with an ambitious 30-yard effort over the bar.
But it was Rovers who took the lead on 57 minutes when Stuart Campbell's surging run set up Rickie Lambert, who fed Williams for a rising right-foot shot that beat a diving Collis.
Blues boss Steve Tilson brought on Gary Hooper on 67 minutes to pep up his strikeforce and 60 seconds later his side finally found the target.
First Nicky Bailey thumped a 22-yard effort against the left post and then Hooper fired the rebound straight at Rovers keeper Steve Phillips from six yards.
Phillips then gathered Bailey's shot before the final whistle was greeted by a volley of boos from disgruntled home fans.