Darren Ambrose's 10th goal of the season was enough to give Palace their first win in five games. The midfielder latched on to a Neil Danns knock down to calmly slot past Brad Jones on 64 minutes and extend the run to only one defeat in ten games.
Neil fielded two changes from the starting eleven that turned out at Loftus Road. Freddie Sears replaced Stern John up front and Alan Lee replaced Alassane N'Diaye to partner Sears at the front of a 4-4-2 formation.
On only two minutes Darren Ambrose came within inches of scoring his 10th goal of the season when his free kick from 30 yards flew marginally wide.
Sears tested Jones for the first time of the afternoon when he worked himself an opening 20 yards out, but his effort lacked the power and the Boro keeper saved comfortably.
The visitors carved out their first opportunity of the afternoon on 15 minutes when Leroy Lita positioned himself well and slipped through the Palace defence and into the box. But as he prepared to shoot Jose Fonte managed a touch to take it away from the striker, but in doing so poked it at goal and forced Speroni into a fine save.
Five minutes later the Boro fans were holding their heads in their hands when Marcus Bent somehow managed to miss an open target from 15 yards.
The former Sunderland striker was found in acres of space inside the box by Adam Johnson but he screwed his first time effort wide.
Sears almost capitalised on a defensive error by Robert Huth but his angle for a shot was closed down quickly so he played in Danns who tried to dance his way through the defence but was tackled. The ball fell to Ertl who laid it off to Butterfield and his effort from 25 yards flew high and wide.
But Palace came closest in the half when Alan Lee's header skipped inches wide of the far post with Jones soundly seaten.
Then, on 38 minutes Speroni claimed a corner and immediately launched it up field for Sears.
The Palace striker then played in Ambrose and he laid it off to Danns but Hoyte blocked his shot. Palace played the resulting corner short to Butterfield whose effort from 20 yards was blocked and then Ertl volleyed over the rebound.
The second half, while open and full of attacking intent from both sides, saw very little in the way of chances as both sides cancelled eachother out.
But even so Boro should have opened the scoring within minutes of the restart when a Palace corner was cleared to Lita who broke quickly with three players in support.
With only Butterfield as the last line of defence in front of Speroni he did brilliantly in channeling the Boro striker and forcing him wide. His three team-mates were all calling for it frantically but he took it to the byline and shot across goal, much to the frustration of his manager on the touchline.
The deadlock was finally broken on 64 minutes and again it was a break from a corner, but this time it was Palace who turned defence into attack.
The ball was collected on the edge of the box by Shaun Derry who played it out quickly to Lee. The towering striker looked up and played a beautiful cross field ball into the box that Danns flicked on into the path of Ambrose.
The midfielder collected the ball well before slipping it past Jones confidently for his 10th of the season.
Middlesbrough responded by claiming a lot of the possession in the latter stages of the game and almost had their equaliser on 77 minutes when Gary O'Neil was played through on goal by Bent.
One-on-one with Speroni the winger tried to chip it over the Palace keeper, but he managed to get a hand on it and palmed it away to safety.
The visitors created another good opportunity late on when substitute Jonathan Franks was played through on goal, but under pressure from Fonte he smashed his effort at Speroni.
Middlesbrough applied some late pressure but the Palace defence held firm to see out the win.
Att: 15,321 (1,556 Away)
Crystal Palace: 1. Julian Speroni, 3. Clint Hill, 4. Shaun Derry, 6. Jose Fonte, 7. Darren Ambrose, 8. Neil Danns (10. Nick Carle,, 81), 16. Freddie Sears (33. Alassane N'Diaye, 90), 19. Alan Lee, 20. Danny Butterfield, 22. Johnny Ertl, 24. Claude Davis
Subs: 2. Nathaniel Clyne, 9. Stern John 11. Victor Moses, 14. Sean Scannell, 21. Kieran Djilali,
Middlesbrough: 1. Brad Jones, 2. Justin Hoyte (20. Julio Arca,69 ), 9. Leroy Lita (28. Johnathan Franks, 78), 12. Sean St. Ledger, 16. Gary O'Neil, 18. Adam Johnson, 19. Marcus Bent, 23. Jonathan Grounds, 25. Rhys Williams, 31. David Wheater, 34. Isaiah Osbourne.
Subs: 7. Mark Yeates, 11. Marvin Emnes, 21. Danny Coyne, 27. Joe Bennett, 29. Tony McMahon