Substitute Darius Henderson forced an equaliser deep into stoppage time to rescue a point for the Lions.
Millwall had taken the lead through Liam Trotter's curling finish after just three minutes, but Burnley were soon in their stride and created plenty of chances.
Their pressure told after 19 minutes as Ben Mee scored his first goal for the Clarets with a close range header from Junior Stanislas' free-kick.
And they went into the interval ahead as Charlie Austin scored his eighth league goal of the season with a powerful header from near the edge of the penalty area.
Stanislas controversially saw a second-half goal ruled out for offside before substitute Henderson scored from close range.
Burnley had suffered a blow in the warm-up as captain Jason Shackell pulled up with an injury, which saw David Edgar restored to the line-up.
Things got worse when Millwall opened the scoring for only the second time this season.
Trotter received Andy Keogh's pass on the edge of the area before curling a right-footed finish into the far left corner to give the Lions the perfect start.
But Burnley responded strongly, with Ross Wallace firing over from the edge of the area, before
Ben Mee headed over Stanislas' left-wing free-kick.
McCann then found some space on the edge of the area but Millwall goalkeeper David Forde turned his fierce effort away for a corner.
After 15 minutes Stanislas got on the end of Martin Paterson's low cross but his close range effort clipped the top of the crossbar.
Burnley equalised four minutes later as Mee rose highest to meet Stanislas' corner with a header from six yards.
But Millwall still carried a threat and Lee Grant was forced into action on the half-hour mark to tip over Scott Malone's volley and the keeper produced another fine save five minutes before half-time to stop James Henry's drive from the edge of the area.
The saves proved vital as the Clarets went into the break ahead as Austin got on the end of Kieran Trippier's cross and headed past Forde.
Burnley thought they had doubled the lead in the 64th minute, but Stanislas' neat finish after a one-two with Paterson was disallowed after a late flag from the assistant referee.
The delay in the decision angered the home fans and following the incident the game became scrappy, with referee Craig Pawson struggling to keep control.
Substitute Henderson then popped up in stoppage time to score the equaliser, and was denied a dramatic winner by the bar in the last minute.