Forget the goal difference . Newcastle are promoted from the Coca-Cola Championship after a 3-2 victory over Peterborough. Nottingham Forest got a 1-1 draw at Bristol City, and sealed the Magpies' immediate return to the top flight. Newcastle have a 15-point cushion and a goal difference that is vastly superior . with just five games to go. Dominic Green gave rock bottom Posh a surprise 11th-minute lead but Kevin Nolan equalised on the stroke of half-time and Joey Barton put the visitors ahead three minutes after the break. Shola Ameobi (59) made it three and Newcastle held on despite a 76th-minute strike from Liam Dickinson. Forest avoided an eighth consecutive away defeat but the point leaves them 11 points adrift of second-placed West Brom with five games remaining. Liam Fontaine's early goal gave the Robins a dream start and raised hopes of their first win against Forest for 36 years, but Guy Moussi's superb long-range strike drew Forest level before half-time. Striker Stefan Maierhofer played in goal for the last few minutes as City were reduced to 10 man due to a serious injury to Dean Gerken, with caretaker manager Keith Millen having used all three substitutes. Michael Chopra's dramatic late winner gave Cardiff a 2-1 victory over rivals Swansea to help the Bluebirds take a big step towards securing a play-off berth. Swansea are also currently in the play-off spots but this result will leave them nervously looking over their shoulders at the chasing pack, with seventh-placed Blackpool just two points behind. Andrea Orlandi scored direct from a corner to put the visitors ahead before Chopra's 18th goal of the season levelled things up. Substitute Shefki Kuqi spurned a great chance to put the visitors 2-1 in the last minute, before Chopra struck to settle matters at Cardiff City Stadium. Peterborough could have been relegated on Saturday but live to fight another day after Watford and Sheffield Wednesday were both held to 1-1 draws. Will Buckley (35) put Watford ahead at Preston but they were pegged back by Callum Davidson (53) while Tom Soares earned Wednesday a point at QPR with 13 minutes remaining after Alejandro Faurlin (23) had given Rangers the lead. There was another 1-1 draw at the Riverside, where Middlesbrough's play-off hopes were dealt a blow by struggling Crystal Palace. Scott McDonald put the hosts ahead in the 15th minute but Alassane N'Diaye struck just before the break to keep Palace within a point of Watford. Sheffield United joined Boro on 55 points, six adrift of the play-off places, after a goalless draw with Barnsley. The Blades' Paul Connolly saw red in the final minute after picking up a second yellow card. Plymouth gave their survival hopes a huge boost and dented Doncaster's top-six aspirations with a last-gasp 2-1 victory at the Keepmoat Stadium. James Coppinger put the hosts ahead in the 58th minute but Joe Mason levelled (67) and Bradley Wright-Phillips headed in a 90th-minute winner to move Plymouth to within three points of safety. Ipswich are surely safe thanks to a 2-1 win over in-form Reading, who played an hour with 10 men after Matthew Mills was dismissed for violent conduct. Two goals in four minutes from Gareth McAuley and Jonathan Walters just before half-time put Roy Keane's side in control and Gylfi Sigurdsson's free-kick came too late to affect the outcome. Finally, Derby beat Coventry 1-0 thanks to Shaun Barker's 20th-minute effort.