Lowly Bristol City extended their unbeaten run to five games, condemning leaders Southampton to only their third league defeat of the season.
Saints had the better of the early play but City scored soon after the break.
Albert Adomah eluded his marker to fire in a deflected effort after Kelvin Davis had saved his initial shot.
For Saints, Guly Do Prado spurned a fine chance from six yards and Steve De Ridder blazed over before Nicky Maynard sealed it with a looping shot.
The Robins remain in the bottom three but their revival under new boss Derek McInnes continued in a lively encounter, which they dominated for long periods.
Saints started strongly, however, and former England goalkeeper David James needed to make a smart low save to deny Adam Lallana.
At the other end Davis had a scare when he almost spilt Ryan McGivern's cross into his own net, the ball dribbling narrowly wide of the post.
Adomah was presenting problems to the Southampton defence and he set up Marvin Elliott, who could only send a tame shot straight at Davis.
The Saints keeper also saved from Kalifa Cisse, while Maynard and Stephen Pearson wasted good opportunities.
City began the second period with similar vigour and Adomah wriggled free to put them ahead.
Jose Fonte had an immediate chance to equalise but sent his free-kick wide.
De Ridder failed to find the target from the edge of the area and the visitors were left to rue their misses when Maynard's shot deflected in to seal City's fifth league victory of the season.
- 01 James
- 04 Fontaine
- 05 Nyatanga
- 36 McGivern
- 07 Elliott
- 08 Kilkenny
- 14 Skuse
- 21 Cisse (Woolford - 61' )
- 27 Adomah
- 37 Pearson Booked (Wilson - 77' )
- 10 Maynard (Pitman - 87' )
- 22 Gerken
- 18 Wilson
- 11 Woolford
- 16 Bolasie
- 34 Pitman
- 01 Davis
- 02 Richardson
- 06 Fonte
- 13 Fox
- 26 Hooiveld Booked
- 08 Cork
- 10 Guly (De Ridder - 64' Booked )
- 14 Hammond (Barnard - 79' )
- 18 Chaplow (Schneiderlin - 7' )
- 20 Lallana
- 07 Lambert
- 21 Bialkowski
- 16 Martin
- 04 Schneiderlin
- 33 De Ridder
- 09 Barnard
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +4:51
Brett Pitman concedes a free kick for a foul on Morgan Schneiderlin. Free kick taken by Jos Hooiveld.90:00 +3:02
Neil Kilkenny decides to take the corner short.89:06
Jose Fonte concedes a free kick for a foul on Brett Pitman. Neil Kilkenny takes the direct free kick.86:21
Neil Kilkenny takes the direct free kick.86:21 Substitution
Substitution Brett Pitman on for Nicky Maynard.86:21 Booking
Booking Jos Hooiveld receives a yellow card.85:59
Unfair challenge on Neil Kilkenny by Jos Hooiveld results in a free kick.83:43
Assist by Albert Adomah.83:43 Goal scored
Goal! - Nicky Maynard - Bristol C 2 - 0 Southamp'n Nicky Maynard gets on the score sheet with a goal from the edge of the penalty box low into the middle of the goal. Bristol City 2-0 Southampton.83:21
The ball is delivered by Frazer Richardson, save by David James.81:23
David James takes the free kick.81:23 Booking
Booking Steve De Ridder booked for unsporting behaviour.80:26
Marvin Elliott produces a right-footed shot from the edge of the area and misses to the left of the target.78:49 Substitution
Substitution Lee Barnard joins the action as a substitute, replacing Dean Hammond.76:15 Substitution
Substitution James Wilson replaces Stephen Pearson.71:48
Effort on goal by Steve De Ridder from just inside the area clears the crossbar.69:42
Free kick awarded for an unfair challenge on Adam Lallana by Ryan McGivern. Free kick taken by Morgan Schneiderlin.69:18
Albert Adomah sends in a cross.68:40
The assistant referee flags for offside against Nicky Maynard. Free kick taken by Kelvin Davis.
The official flags Dean Hammond offside. David James takes the free kick.65:37
Outswinging corner taken right-footed by Neil Kilkenny, Albert Adomah takes a shot.64:57
The ball is crossed by Albert Adomah, Shot by Martyn Woolford from 6 yards. Kelvin Davis gets a block in.64:23
Frazer Richardson crosses the ball, Jack Cork takes a shot. Save by David James.63:11
Direct free kick taken by Daniel Fox.63:11 Substitution
Substitution Steve De Ridder joins the action as a substitute, replacing Guly Do Prado.63:11
Foul by Liam Fontaine on Jack Cork, free kick awarded.60:59 Substitution
Substitution Martyn Woolford on for Kalifa Cisse.58:37
Unfair challenge on Albert Adomah by Jos Hooiveld results in a free kick. Stephen Pearson crosses the ball in from the free kick, clearance by Jose Fonte. Corner taken left-footed by Stephen Pearson from the left by-line, Close range header by Marvin Elliott misses to the right of the goal.56:19
Albert Adomah has an effort at goal from deep inside the area missing to the left of the goal.55:27
Centre by Richard Lambert, save by David James.54:49
Free kick awarded for a foul by Daniel Fox on Albert Adomah. Cole Skuse takes the free kick.54:12
Stephen Pearson is ruled offside. Free kick taken by Kelvin Davis.52:46
Corner taken by Daniel Fox from the right by-line played to the near post, Kalifa Cisse makes a clearance.50:14
Daniel Fox produces a cross, Jose Fonte produces a headed effort from deep inside the six-yard box which goes wide of the right-hand upright.50:14 Booking
Booking Stephen Pearson is booked.50:07
Adam Lallana fouled by Stephen Pearson, the ref awards a free kick.49:27
Morgan Schneiderlin fouled by Ryan McGivern, the ref awards a free kick. Free kick taken by Frazer Richardson.47:23 Goal scored
Goal! - Albert Adomah - Bristol C 1 - 0 Southamp'n Albert Adomah gets on the score sheet with a goal from just inside the area to the bottom left corner of the goal. Bristol City 1-0 Southampton.47:02
Albert Adomah takes a shot. Blocked by Kelvin Davis.45:01
The game restarts for the second half.45:00 +2:06 Half time
Half Time It is the end of the first-half.45:00 +0:43
Corner taken left-footed by Stephen Pearson.45:00 +0:12
Ryan McGivern produces a cross, clearance by Jos Hooiveld.43:12
Stephen Pearson takes a shot.40:16
Outswinging corner taken left-footed by Stephen Pearson from the left by-line, Dean Hammond manages to make a clearance.38:55
Adam Lallana takes a shot. Blocked by Lewin Nyatanga.37:25
Effort from the edge of the area by Nicky Maynard goes wide of the right-hand upright.35:58
Kalifa Cisse takes a shot. Save made by Kelvin Davis.31:52
Frazer Richardson sends in a cross, save made by David James.29:07
Outswinging corner taken left-footed by Stephen Pearson, Jos Hooiveld makes a clearance.28:51
Ryan McGivern crosses the ball, save by Kelvin Davis.28:30
The ball is sent over by Albert Adomah, clearance by Jos Hooiveld.26:37
Free kick awarded for an unfair challenge on Liam Fontaine by Richard Lambert. Liam Fontaine takes the free kick.26:00
Albert Adomah produces a right-footed shot from long distance which goes wide right of the goal.24:00
Foul by Ryan McGivern on Morgan Schneiderlin, free kick awarded. Direct free kick taken by Frazer Richardson.23:03
Shot on goal by Nicky Maynard from just inside the area clears the crossbar.20:55
Stephen Pearson produces a cross.17:36
Daniel Fox sends in a cross, save made by David James.16:49
Centre by Adam Lallana, blocked by Albert Adomah. Corner taken by Daniel Fox.15:51
Foul by Marvin Elliott on Jack Cork, free kick awarded. Direct free kick taken by Kelvin Davis.15:10
The ball is crossed by Morgan Schneiderlin, save made by David James.14:00
Adam Lallana takes a shot. Save made by David James. Corner taken by Daniel Fox played to the near post, clearance by Kalifa Cisse.9:20
Free kick awarded for an unfair challenge on Marvin Elliott by Morgan Schneiderlin. Free kick crossed by Neil Kilkenny, Jose Fonte makes a clearance.6:59 Substitution
Substitution Morgan Schneiderlin comes on in place of Richard Chaplow.0:00
The referee gets the match started.
Live data and text provided by our data suppliers