Craig Mackail-Smith grabbed his 34th goal of the season to take Peterborough into the League One play-off final.

With Milton Keynes Dons leading 3-2 from the first leg, Posh captain Grant McCann levelled the aggregate score when he curled in a free-kick.

Mackail-Smith tapped in the decider at the second attempt from close range after Dons keeper David Martin palmed George Boyd's shot into his path.

Peterborough will now play Huddersfield Town at Old Trafford on Sunday, 29 May.

No fewer than 109 goals had been scored at London Road this season before kick-off, at an average of 4.07 per game.

It seems that Ferguson's failure at Preston has been to Peterborough's advantage, with Posh on the cusp of securing their third promotion in four seasons

BBC Sport's Paul Fletcher

So it was no surprise that Peterborough, who made three enforced changes to the side who were beaten in the first leg at Stadium MK on Sunday, raced out of the traps looking for the goal they needed to level the aggregate scores.

Mackail-Smith saw a low shot pushed round his near post by Martin before the hosts found the breakthrough they wanted.

Gary MacKenzie fouled Lee Tomlin on the angle of the penalty area and McCann bent his free-kick over the wall and in at the near post, despite Martin's best efforts.

Grant Basey whipped over a low cross which Mackail-Smith and James Wesolowski just failed to convert, while Martin produced another smart save at his near post from Mackail-Smith as Peterborough, who were playing at a high tempo both with and without the ball, continued to have the better of proceedings.

But it was certainly not one-way traffic, and MK Dons served notice of their threat when Sam Baldock caused havoc in the home defence as he competed for MacKenzie's cross, and Daniel Powell stole in to smack a shot from 10 yards against the bar.

After surviving that scare, Peterborough threatened once more when George Boyd turned McCann's miscued shot goalwards but Martin was again equal to the effort.

They finally got their nose in front in the tie for the first time since Mackail-Smith's early opener at Stadium MK in the 54th minute.

MacKenzie and Sean O'Hanlon got in a terrible mess as they attempted to clear Tomlin's cross, presenting Boyd with a clear shot on goal.

Martin did superbly to save Boyd's drive, but could only divert the ball into the path of Mackail-Smith who, after seeing his initial effort blocked by the covering Luke Chadwick, slotted home at the second attempt.

Tomlin thought he had wrapped things up for Posh when he beat Martin with an angled drive, but referee Colin Webster inexplicably pulled play back for a foul on Boyd in the build-up.

And Peterborough almost paid a higher price when play swung to the other end as Baldock picked out the unmarked Angelo Balanta, who was denied a certain goal by an impeccably timed sliding challenge by Wesolowski.

The hosts reacted well to that let-off by going close again when MacKenzie deflected Tommy Rowe's goalbound shot for a corner, while Mackail-Smith was only denied a late second by the post.

MK Dons threw on Keanu Marsh-Brown and Lewis Guy in search of an equaliser but goalkeeper Paul Jones, starting only his second game for Posh because of first-choice Joe Lewis's knee injury, was relatively untroubled.

In fact, the Dons ended up fighting amongst themselves as Marsh-Brown and Stephen Gleeson, who was able to play after having his red card from the first leg overturned, exchanged words and pushed and shoved each other as their frustrations boiled over.

Peterborough hearts were briefly in mouths when Marsh-Brown fizzed in a low cross to Balanta, who should have done better then blast his shot over the bar before having his blushes spared by an offside flag.

Victory means Posh boss Darren Ferguson will return to Old Trafford to lead his side out against Huddersfield at the ground where he started his playing career, and where his father Sir Alex's Manchester United side will receive the Premier League trophy on Sunday.

Sorry, we were unable to load match stats, please try again.