Craig Disley volleyed the home side ahead from Stuart Campbell's 11th-minute corner only for Nadjim Abdou to head a 28th minute equaliser.
Lambert nodded home another Campbell cross after 32 minutes and Jo Kuffour shot Rovers' third five minutes later before Gary Alexander was sent off for deliberately handling Lambert's 43rd-minute header.
Lambert scored confidently from the resulting penalty - his 27th goal of the season - but Millwall battled hard and Abdou scrambled home his second 12 minutes from time before Rovers' centre back Steve Elliott was dismissed for a second booking three minutes later.
Both sides could have had more goals in a hugely entertaining match, but the result was a big blow to Millwall's hopes of automatic promotion.






