Rob Dickie’s stunning equaliser earned QPR a point in a gruelling start to their season.
Both teams scored brilliant goals in a frenetic first half which was dominated by Millwall until Dickie’s strike hauled Rangers level.
Jed Wallace gave the Lions a deserved lead and they were well on top in the early stages.
In only the second minute, the visitors almost went ahead when Scott Malone’s left-wing cross caught out keeper Seny Dieng and hit the bar.
Dieng was given no chance by Wallace’s 11th-minute opener.
The Millwall talisman picked up a loose ball near the edge of the penalty area and rifled a shot into the top corner of the net.
With QPR having enjoyed an excellent second half of last season and since signed the likes of Charlie Austin and Stefan Johansen, who both made a huge impact on loan, there has been plenty of optimism among their fans this summer.
But Mark Warburton’s side struggled to settle and Millwall continued to trouble them after going ahead, with Benik Afobe and George Saville firing shots straight at Dieng.
Then, out of nothing, and totally against the run of play, centre-back Dickie netted a spectacular equaliser on 31 minutes.
Dickie beat Jed Wallace to the ball near the halfway line and strode forward before sending a 30-yard thunderbolt into the corner of the net.
More good work by Dickie before the interval – again after being first to the ball near the halfway line – saw him set up Austin, who shot straight at Bartosz Bialkowski.
Keeper Bialkowski was called into action again early in the second half, this time to tip away Chris Willock’s shot.
Maikel Kieftenbeld fired narrowly over at the other end, but both teams struggled to create clear-cut chances despite plenty of endeavour.
Millwall boss Gary Rowett changed tack for the final 15 minutes, sending target man Matt Smith on against the striker’s former club, but Rangers stood firm against the aerial pressure.
And they almost snatched an injury-time winner when Jordy de Wijs’ header was kept out by Bialkowski.
QPR (3-4-2-1): Dieng; Dickie, De Wijs, Barbet; Odubajo, Johansen (Thomas 73), Ball, Wallace; Willock; Austin (Dozzell 68), Dykes.
Subs not used: Archer, Kakay, Dunne, Bettache, Adomah.