Lambert collected the ball on the right and played a neat one-two with Puncheon, before cutting back and firing a shot that Hart let slip through from his midriff, allowing Davis to poke home.
"We looked for the early goal and looked to put them under pressure early and hope to capitalize on it," Lambert said. "It worked perfectly. Then we went 2-0 up, which was even better."
But City pulled one back in the 39th after Dzeko tucked home a cross from Pablo Zabaleta.
Southampton was annoyed that referee Martin Atkinson waved away Rodriguez's penalty appeal on the stroke of halftime after he was brought to ground in the area by Yaya Toure, captaining City on his return from the African Cup of Nations.
"I ran in and I think there was a little nudge, but the referee hasn't given it so we got on with the game," Rodriquez said.
And they were celebrating at the start of the second half.
A pullback from Lambert was inexplicably passed into his own goal by Barry.
The visitors were having to defend with all they had and hope for a chance on the counter, with goalkeeper Artur Boruc reacting well to palm away Aguero's strike.
But City was soon back on the defensive as Southampton held on for all three points.