Adam Forshaw struck the winning penalty as Brentford booked their place in the final of the League One playoff at the expense of Swindon Town this evening.
The shootout was needed after the two teams had played out a 3-3 draw at Griffin Park, which saw the tie end 4-4 on aggregate.
The home side began the contest the brighter of the two teams, although it took them until the 24th minute to break the deadlock. Marcello Trotta attempted an acrobatic strike at goal and even though he failed to make a connection, the ball went into the net via Swindon's Adam Rooney.
Brentford continued to mount attacks and after Trotta had struck the base of the post with an effort from distance, they doubled their lead through Donaldson in the 40th minute. The striker was picked out by Trotta and he in turn found the corner of the net from 20 yards out.
However, in the closing stages of the half Rooney brought Swindon to within a goal when he found the right net from close range.
Just two minutes after the restart, though, Donaldson restored his team's two-goal margin. Gary Roberts gave away possession in the Swindon half and his error was punished as Donaldson moved into the area, before finding the back of the net with a chipped effort.
Swindon responded again and in the 57th minute they had reduced the arrears for a second time. Following a goalmouth scramble the ball broke to Joe Devera and the right-back fired into the net.
Brentford went close to sealing the outcome six minutes from time when Sam Saunders tried his luck from 25 yards out, but his curling shot struck the crossbar.
Luck then further deserted the hosts as in the last minute of stoppage time Aden Flint rose highest inside the Brentford area to send a powerful header beyond the reach of Simon Moore, forcing extra time in the process.
The additional 30 minutes started poorly for Swindon when Tottenham Hotspur loanee Nathan Byrne was handed a second yellow card for handling the ball, even though he felt that he had been tripped up by Donaldson.
Uwe Rosler's side went about trying to make their numerical advantage count and their two best chances fell to Donaldson, but he was denied his hat-trick on both occasions by Swindon goalkeeper Wes Foderingham, which meant that penalties were required to determine who would face Yeovil Town in the final.
The crucial penalty was missed by Miles Storey and when Brentford captain Tony Craig converted his next spot kick, the advantage was with the home side. Roberts then made it 4-4, but Forshaw kept his composure to send the Bees through.