Rovers took the lead against the run of play on 24 minutes when Jose Fonte fouled Jo Kuffour and Jeff Hughes sent Kelvin Davis the wrong way from the penalty spot.
But Lambert headed Saints level on 43 minutes and then produced a trademark 30-yard free-kick to put them in front just before the break.
Morgan Schneiderlin’s 25-yard volley on 53 minutes emphasised the visitors’ superiority before Adam Lallana side-footed their fourth on 73 and Jason Puncheon shot home from the edge of the box two minutes later.
Rovers lost centre-back Steve Elliott with a 48th-minute injury and from then on slick Saints always looked capable of running up a big score.
A thrilling game saw plenty of goalmouth action at both ends and the result might have been different if Andy Williams had not shot wide for Rovers when put clear by Kuffour on 25 minutes.