The Barclays Premier League’s top scorers were kept at bay for much of this match by a battling Saints team, whose efforts were epitomised by Kelvin Davis’s never-say-die attitude who produced some key saves from Agüero in particular on the keeper’s 300th appearance for the club.
But City’s quality eventually told with Lampard getting an almost inevitable strike on the midfielder’s final appearance in the Premier League, and that effort was added to late on by Agüero’s simplest goal of the season from two yards out, which brought the curtain down on the campaign.
Despite ending on a defeat, Saints secured their best top-flight position in a season since 1990, and it could still end with European football for next season should Arsenal take the FA Cup next weekend.
Ronald Koeman made two changes to the team that beat Aston Villa 6-1, with Kelvin Davis returning in goal, while Filip Djuričić took James Ward-Prowse’s place in midfield.
Saints got the final day contest under way, defending the end housing the travelling support, with many of the Southampton fans dressed in orange colours to mark the occasion.
Much of the early running was down at the other end of the field in the opening exchanges though, with the visitors making a positive start to proceedings by winning a corner inside the first minute of action before City’s Demichelis went into the book for a foul on Djuričić just outside the area.
The first real chance of the game didn’t arrive until the 20th minute when Shane Long wrestled free on the left side of the area before seeing a low shot pushed away by Joe Hart at his near post.
City responded instantly with an effort of their own when Agüero shot high and wide at the near post after he was fed through on the right from midfield. And if the striker thought he should have scored there, he would have been dumbfounded to see Kelvin Davis make a fantastic stop to deny him on the follow up from a Yaya Touré drive which Davis spilt, but then sprang back into action for a superb reaction stop to the Argentine’s strike.
City pushed on from there, and after a prolonged spell of possession they opened the scoring on 31 minutes. James Milner found space on the right and squared the ball to City captain for the day Frank Lampard, whose first time strike flew past Davis for 1-0.
Moments later it was almost two when Lampard put Agüero through on goal, but again brought a great save from Davis who stood firm to deny the forward.
Davis was called into action once more before the break when he kept out a deflected strike from a combination of Toby Alderweireld and Agüero as Saints remained in the game heading into the second 45.
They began the new half with renewed vigour, and their first attack of the second 45 saw Mané fizz a cross into the area for Pellè, whose improvised attempt at goal cleared the bar in front of the Saints supporters.
The offside flag twice got the better of the visitors as they continued to press the City backline, with Bertrand also adding a presence to the forward line as he pushed on from full back.
Kelvin Davis was called upon in the 56th minute, keeping out Lampard’s far post header, with Saints making their first change of the afternoon soon after as James Ward-Prowse replaced Filip Djuričić for the final half hour.
Pellè was caught offside again at the end of another swift break forward, with Saints testing Hart when Long got through on goal to shoot low, only for the keeper to make a good save.
City bolstered their attacking options with Wilfried Bony entering the action, though chances remained few and far between for the hosts, who saw David Silva shoot wide from range as the action reached the last 20 minutes.
Saints then had a flurry of opportunities with Sadio Mané heading the ball down at the far post, where Hart gathered, before Hart was called into action again to keep out another low shot from Long.
Long almost got through again when he linked up with Ward-Prowse to good effect inside the area, but Demichelis got across to cut out the danger.
City soaked up the pressure though, and sealed their win two minutes from time.
Substitute Jesus Navas’ shot was deflected high into the air and headed down by Mangala invitingly for Sergio Agüero, who eventually got the better of Davis in the game by nodding in from two yards out to complete the victory.
Manchester City team: Joe Hart, Aleksandar Kolarov, Eliaquim Mangala, Martin Demichelis, Pablo Zabaleta, David Silva, Frank Lampard (c) (Jesus Navas 77), James Milner (Vincent Kompany 79), Fernandinho, Yaya Touré (Wilfried Bony 66) Sergio Agüero
Unused substitutes: Willy Caballero, Bacary Sagna, Edin Džeko, Stevan Jovetic
Booked: Demichelis (2)
Goals: Lampard (31), Agüero (88)
Southampton team: Kelvin Davis, Nathaniel Clyne, José Fonte (c), Toby Alderweireld, Ryan Bertrand, Victor Wanyama, Steven Davis (Eljero Elia 76), Filip Djuričić (James Ward-Prowse 59), Sadio Mané, Shane Long, Graziano Pellè
Unused substitutes: Paulo Gazzaniga, Maya Yoshida, Florin Gardos, Harrison Reed, Matt Targett
Booked: Long (25)
Referee: Chris Foy