Bulgaria went out of Euro 2004 in disgrace as they were beaten by Denmark in an ill-tempered Group C encounter in Braga.
The Bulgarians, after shipping in five goals to Sweden in their opening game, set out seemingly intent to bully their way to victory.
But their tactics backfired as Denmark deservedly claimed the win after a first-half strike from Jon Dahl Tomasson and a late effort from Jesper Gronkjaer.
Bulgaria's frustration became evident as captain Stilian Petrov was sent off amid a flurry of cards late on.
Five Bulgarians ended up in the book but Denmark were not totally blameless. Everton's Thomas Gravesen particularly gave as good as he got in a match which
saw plenty of rough stuff.
Gravesen returned to the side from suspension in place of Christian Poulsen, the victim of the infamous Francesco Totti spitting in Denmark's draw with Italy on Monday.
The Bulgarians had threatened a number of changes and been the subject of an embarrassing bout of speculation over an alleged punch-up on the bus between Predrag Pazhin and Ilian Stoyanov.
Yet ironically the only change Plamen Markov made to his side was to bring in Stoyanov for Pazhin.
The setting for the match was remarkable, the Municipal Stadium being built on the site of an old quarry with one end at the bottom of a dramatic cliff.
But the match was as unpleasant as any seen in the tournament. The early exchanges were spiteful, nasty and never fully controlled by referee Lucilio Batista.
Gravesen was at the heart of all the mayhem along with Kaiserslautern's tall midfielder Marian Hristov.
The unlucky innocent victim though was Dennis Rommedahl who got himself battered once too often and had to limp away after just 23 minutes to allow Gronkjaer into the fray.
The Portuguese official booked Rosen Kirilov and former Manchester City full-back Niclas Jensen, but there could have been many more.
Amid all unpleasantness, Denmark made the better chances. Vladimir Ivanov kicked off the line after Ebbe Sand had driven back a shot following a save by Zdravko Zdravkov and Ivailo Petkov hooked the ball off the head of Martin Jorgensen two yards out.
Denmark had another chance to take the lead when a Gravesen shot was touched away by Zdravkov, and Martin Laursen's follow-up shot was deflected wide by a desperate piece of diving defending by Kirilov.
Gravesen got away with a high lunge on Stilian Petrov, the referee still not firmly in control.
Gravesen can be erratic but he produced the better side of his game with a fine throughball that put Tomasson clear on 38 minutes, but the Milan striker angled his effort into the side netting.
Bulgaria then wasted two great chances inside a minutes by Hristov eight yards out and then Martin Petrov missed an even easier chance. But with a minute to go to the break, Gravesen's ball set up Jorgesen for a touch across goal that
Tomasson rolled into the net.
Stoyanov was booked on 50 minutes after bringing down Gronkjaer having been totally bemused by a piece of neat skill.
Denmark had a reasonable control on proceedings, but they knew they needed to put away a couple more of their chances to finally kill off the Bulgarians. This was underlined when Zoran Yankovich flashed a 55th-minute drive from 20 yards inches wide.
Sand was booked on 58 minutes for kicking the ball away as Danish frustration at not having settled matters became evident.
Danish concentration was slipping and possession with it, and Bulgaria began to sense their chance.
Golden boy Dimitar Berbatrov was coming more into the game and Stilian Petrov had a greater influence in midfield.
Bulgaria started winning more free-kicks and getting the ball into Denmark's box, something they rarely did in the first period.
Jorgensen, who had suffered more than most from Bulgaria's physical approach, limped away on 71 minutes to be replaced by Charlton's Claus Jensen.
Gravesen was sent spinning by a late, late challenge from Stilian Petrov with Denmark living on their nerves. And Bulgaria were now dishing out some retribution on Gravesen, Zlatomir Zagorchich next in the book for flattening the Everton man on 79 minutes.
The Bulgarian skipper was then sent off for dissent after his side were denied at least a free-kick when Lazarov was brought down heading for goal. The Bulgarians had lost it by now, Martin Petrov being the next in the book for a trip.
But in injury time Gronkjaer made sure with a goal his industry and skill had deserved.
Teams
Bulgaria Zdravkov, Ivanov (Lazarov 51), Kirilov, Stoyanov,
Ivaylo Petkov (Zagorchich 40), Peev, Stilian Petrov, Hristov,
Martin Petrov, Berbatov, Yankovich.
Subs Not Used: Kolev, Ivankov, Kotev, Borimirov, Milen Petkov,
Dimitrov, Chilikov, Manchev, Pazhin, Bojinov.
Sent Off: Stilian Petrov (83).
Booked: Kirilov, Stoyanov, Stilian Petrov, Zagorchich, Hristov,
Martin Petrov.
Denmark Sorensen, Helveg, Laursen, Henriksen, Niclas Jensen,
Gravesen, Tomasson, Daniel Jensen, Jorgensen (Claus Jensen 72),
Sand, Rommedahl (Gronkjaer 23).
Subs Not Used: Skov-Jensen, Andersen, Bogelund, Kahlenberg,
Kroldrup, Poulsen, Priske, Perez, Madsen, Lovenkrands.
Booked: Niclas Jensen, Sand.
Goals: Tomasson 44, Gronkjaer 90.
Att: 30,000
Ref: Lucilio Cardoso Cortez Batista (Portugal).