
Both bosses and players from both sides were involved in a mass brawl at the end of the match
Mihailo Ivanovic's second-half strike saw Millwall maintain their fine form at the top end of the Championship with victory at inconsistent Bristol City.
But the game was marred by a huge melee on the touchline at full-time which involved both sets of players and staff after City had a goal disallowed for offside.
Bristol City captain Jason Knight appeared to push Millwall manager Alex Neil in the chest twice in chaotic scenes which are likely to lead to disciplinary repercussions for both clubs.
Ivanovic's winner saw Neil's side keep up their pursuit of an automatic promotion place as they remained third and two points behind second-placed Middlesbrough.
The frustrated Robins dominated possession but Millwall's resolute defence, led by inspirational captain Jake Cooper, saw them to a fourth league win on the road this season.
After a first-half stalemate the home side made a bright start to the second half with Cooper twice called upon to make important blocks from Mark Sykes.
It was the Robins who were looking the more likely to break the deadlock until Ivanovic stunned Ashton Gate just before the hour mark.
The Serbian striker pounced to lash home his fourth goal of the season after Millwall had broken quickly down the right.
Two shots from Femi Azeez were saved by Radek Vitek but the Bristol City goalkeeper could do nothing to stop Ivanovic's shot after he had been teed up by Ra'ees Bangura-Williams.
The home side pushed hard for an equaliser and Scott Twine had a shot deflected wide while Rob Dickie had a close-range effort cleared off the line.
Millwall goalkeeper Max Crocombe then made a fine save to thwart Ross McCrorie.
The Robins thought they had levelled in added time only to be denied by an offside flag as, amid a flurry of late yellow cards, Neil's side held out.
The defeat sees Bristol City drop out of the play-off spots ahead of a testing run which sees them face leaders Coventry, Boro and improving Leicester in their next three matches.

Mihailo Ivanovic has scored four goals this season for Millwall
'Sometimes the emotion goes over' - Bristol City reacion
Bristol City head coach Gerhard Struber told BBC Radio Bristol:
"Only the referee has something against this goal with offside. We realised very quickly it was not offside.
"We could hear the coaching group from Millwall have something to say about it. In the end there was a little bit too much emotion from both sides.
"Sometimes the emotion goes over and we have to accept that.
"This is something we don't want to see but the kick-off was an outstanding wrong decision from the referee. They have a big responsibility to make the right decision.
"This is not normal and we don't want to see a picture like that but it is crystal clear that sometimes the emotion goes over.
"No-one knows in the whole stadium why he gave offside. In the end it was something that had a really big domino effect."
Gerhard Struber: "Much emotion in this game"
'A grinding performance' - Millwall reaction
Millwall manager Alex Neil told BBC Radio London:
"Today was a grinding performance where we needed to do the nasty bits of the game well and we would get opportunities and if we could take them we'd win and that's what we did.
"We're not trying to kid ourselves or anyone else that we popped Bristol City off the pitch but we defended resolutely and we carried a threat second half and if we can do that more often than not we can win games.
"What you have to bear in mind is how many players we have missing. For the lads to come through this test, come here to Bristol City who are a good side, manage to get the win and keep a clean sheet… brilliant."
Alex Neil on a grinding performance against Bristol City
Player of the match
After the opportunity to rate players has closed, the score displayed represents the average from all the submissions by BBC Sport users.