Leven’s 71st-minute penalty and Puncheon’s last-minute rocket put the Dons 2-0 up, before substitute Darryl Duffy pulled a goal back for the Pirates three minutes into stoppage time.
Rovers, who have now lost five games, defended doggedly in the first half to frustrate the Dons and they created by far the better chances on the counter-attack.
Steve Elliott almost put the Pirates ahead when his 12-yard header hit the bar from skipper Stuart Campbell’s corner in the 19th minute. Andy Williams then seized upon a loose pass from Dons Leven but his 15-yard finish lacked conviction and was comfortably saved by the diving Willy Gueret.
The keeper then had to be quick off his line to save bravely at the feet of Jo Kuffour, who then hit the bar with a looping header from Mark Wright’s cross shortly after the break.
But Leven broke the deadlock for the Dons in the 71st minute, coolly sending goalkeeper Mikkel Andersen the wrong way from the spot after Elliott had shoved over Mathias Doumbe in the box. Puncheon’s 20-yard rocket from Leven’s cut-back made it 2-0, before Duffy headed in Campbell’s corner at the death.