Sheffield United's automatic promotion hopes from the Sky Bet Championship were dealt a blow after they were held to a 1-1 draw at home to Millwall.
Gary Madine put United in front in the second half before Ben Marshall missed a penalty for the visitors after John Egan's red card offence.
Jake Cooper then headed an equaliser deep into stoppage time for the visitors.
United started the day in third place, one point from automatic promotion after their 1-1 draw with Birmingham in midweek.
Millwall arrived at Bramall Lane just two points off the drop zone. They were, however, hoping to keep three consecutive clean sheets for the first time since March 2018.
Both sides made two changes to their starting line-ups. Blades boss Chris Wilder welcomed back Jack O'Connell, who returned from injury and Kieron Freeman also came into the side.
Neil Harris' double change saw Conor McLaughlin and Shane Ferguson come in, replacing James Meredith and Marshall who both dropped to the bench. Ferguson was back from his three-match suspension.
United, as expected, dominated possession early on but it was Millwall who had the first sighting of goal inside five minutes. A Ferguson corner found Alex Pearce at the far post and his left-footed volley was just wide.
Enda Stevens nearly opened the scoring when he just missed Freeman's deep cross.
The Blades made an early change when Chris Basham's injury forced him off and allowed Madine to take his place.
The home side were struggling to create real chances, but David McGoldrick went close when a piece of individual skill allowed him space to fire a long-range curling shot that went just over.
United finished the half strongly and went close when Stevens' run carried him into the area, but his shot was crucially blocked away for a corner by a brave Cooper tackle.
The Blades nearly opened the scoring after the break when McGoldrick's rebounded shot found its way to Madine. His shot looked to be heading in but McLaughlin's block prevented an opener.
Madine got his goal moments later in the 51st minute. McGoldrick's fortunate pass fed John Fleck who calmly squared the ball to Madine who fired into an empty net.
Millwall fought their way back into the game and Jed Wallace nearly fired in a spectacular equaliser when a clearance fell to him on the edge of the area and he unleashed a fierce volley which flew just over.
The visitors continued to push for an equaliser and Mahlon Romeo was inches away when his 30-yard strike was acrobatically pushed away by Dean Henderson.
McGoldrick fashioned himself another opportunity, the Republic of Ireland international dribbling into the box and firing his shot across goal but just wide of the target.
Millwall pressed on and after Henderson's save from a Ben Thompson long-range strike, the ball was floated back in and substitute Tom Elliott's header was goalbound before Egan's handled clearance.
Egan was sent off and substitute Marshall had the chance to equalise, but his penalty rattled the bar and went out of play.
But the visitors found the equaliser deep in stoppage time.
Elliott again found his header kept out, this time by a stunning Henderson save, but Cooper was on hand to head home and make it 1-1.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport staff');
ga('pacontentapi.set', 'dimension2', '057ad8c0-35aa-44b9-8aa9-7d8e54289f6f');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:club-news,paservice:sport:football,paservice:sport:match-reports');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:football');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Late Millwall goal dents Sheffield United\u2019s automatic promotion hopes'});