Match ends, Cardiff City 0, Millwall 0.
Relegation-threatened Millwall gained what could be a vital point in their bid for Championship survival, drawing 0-0 at mid-table Cardiff City.
Bluebirds midfielder Joe Ralls, 21, came closest to breaking the deadlock in a first half of few chances, hitting the Millwall bar with a cross-shot.
After the break Mark Beevers rattled the Cardiff crossbar for the visitors.
The Lions are four points from safety with three games to go, while the Bluebirds stay in 13th.
Neil Harris' side's hopes of extending their five-season stay in the Championship may now hinge on the Football League.
Its disciplinary commission is set to decide, before the end of the season, whether to deduct points from Rotherham United - the team one place above them - for fielding an ineligible player.
On the field, tempers boiled over on a hot day in the Welsh capital after Lee Gregory's high challenge on Cardiff defender Bruno Ecuele Manga.
Lee Peltier reacted angrily to the challenge and had to be calmed down by his Bluebirds team-mates, as he and the Millwall striker were both booked.
Chances were few and far between in the opening 45 minutes, with Ralls's effort beating Millwall goalkeeper David Forde but hitting the woodwork.
Lions captain Alan Dunne fired his side's best effort of the half straight at Cardiff goalkeeper David Marshall from just outside the box.
The London club nearly made the breakthrough early in the second half as Beevers smashed a powerful shot against the bar, and Marshall reacted well to deny Gregory from slotting home the rebound.
Cardiff created little of note in the second half and Millwall looked most likely to score.
Bluebirds defender Sean Morrison lost the ball to Lions attacker Lee Martin and his pass found Aiden O'Brien unmarked inside the box, but Marshall kept out the striker's effort with his legs.
Gary Taylor-Fletcher spurned a great opportunity to win it for the Lions late on, but failed to trouble Marshall after not connecting with the ball properly just nine yards out.
Millwall travel to Blackburn Rovers away on Tuesday 21 April, while Cardiff host already relegated Blackpool at home on Saturday 25 April.
Millwall boss Neil Harris: "I know as much as you guys about the Rotherham situation. We just know we are back in the mix. It does not help us not knowing but we have to look after ourselves and keep going.
"The teams above us are looking over their shoulders. It may not have been the best of games but we are showing we have got what it takes to win football games - and it means the sides above us know they need to pick up wins."
Cardiff assistant manager Scott Young: "It was not a great game or a great spectacle. Millwall came with a game plan to slow the game down and make it a niggly affair.
"We try to give the fans something to smile about every time we go on to the pitch and we are as disappointed as the fans. We edged the first half but, give them credit, they were probably the better team in the second half."
- 2PeltierBooked at 39mins
- 5Ecuele Manga
- 4MaloneSubstituted forda Silvaat 22'minutes
- 11NooneSubstituted forKennedyat 85'minutes
- 21RallsSubstituted forPilkingtonat 64'minutes
- 13DoyleBooked at 76mins
- 3da Silva
- 40K Harris
- 7MartinSubstituted forGueyeat 62'minutes
- 9GregoryBooked at 38minsSubstituted forTaylor-Fletcherat 75'minutes
- 22O'BrienSubstituted forFullerat 74'minutes
- Mark Brown
- Shots on Target
Second Half ends, Cardiff City 0, Millwall 0.
Attempt missed. Aron Gunnarsson (Cardiff City) header from the centre of the box misses to the right. Assisted by Peter Whittingham with a cross following a corner.
Delay over. They are ready to continue.
Delay in match Sid Nelson (Millwall) because of an injury.
Corner, Cardiff City. Conceded by David Forde.
Corner, Cardiff City. Conceded by Dan Harding.
Attempt missed. Joe Mason (Cardiff City) right footed shot from the right side of the box is high and wide to the right. Assisted by Eoin Doyle.
Substitution, Cardiff City. Matthew Kennedy replaces Craig Noone.
Corner, Millwall. Conceded by Lee Peltier.
Corner, Millwall. Conceded by Lee Peltier.
Attempt missed. Martyn Woolford (Millwall) left footed shot from outside the box misses to the left.
Aron Gunnarsson (Cardiff City) wins a free kick in the defensive half.
Foul by Ricardo Fuller (Millwall).
Anthony Pilkington (Cardiff City) wins a free kick in the defensive half.
Foul by Martyn Woolford (Millwall).
Eoin Doyle (Cardiff City) is shown the yellow card for a bad foul.
Foul by Eoin Doyle (Cardiff City).
Ricardo Fuller (Millwall) wins a free kick in the attacking half.
Substitution, Millwall. Gary Taylor-Fletcher replaces Lee Gregory.