Match ends, Middlesbrough 1, Crystal Palace 2.
Middlesbrough's unbeaten start to the season came to an end as Crystal Palace claimed their first win of the new campaign with victory at the Riverside.
Christian Benteke met Wilfried Zaha's cross before Boro drew level when Daniel Ayala scored an equally powerful header from Stewart Downing's corner.
Zaha put Palace back in front, finishing James McArthur's through ball after weak defending by George Friend.
Boro pushed hard for another equaliser, but the away side's defence held firm.
Joel Ward brilliantly denied Alvaro Negredo with an acrobatic clearance after Steve Mandanda palmed away a Gaston Ramirez shot, while Boro thought they might have been awarded two penalties.
The referee waved away appeals after Scott Dann handled the ball when clearing a cross, and a Zaha challenge on Friend in the fifth minute of stoppage time resulted in a free-kick on the very edge of the area.
Victory for Palace lifts them up to 12th in the table on four points from four games, while Boro slip to eighth, with one point more.
Benteke's opener was his first goal for Palace since joining from Liverpool for a club record £27m in August. It was the kind of towering header typical of his best seasons in the Premier League with Aston Villa between 2012 and 2015.
After Adam Clayton's misplaced pass, Palace took a throw-in on the right flank, from where Zaha delivered a diagonal cross towards the Belgian at the back post.
He easily shrugged off his marker, hung in the air and planted a header beyond Victor Valdes, a spectator in the Boro goal.
Later, Benteke was replaced by his 21-year-old brother Jonathan - who joined Palace's development squad on 1 September but was a substitute on Teesside, while Mathieu Flamini also came on for his Palace debut.
Boro's off-day at the back
Middlesbrough boss Aitor Karanka will be very disappointed with his side's defensive performance.
Their promotion-winning campaign last season was built on solidity at the back, especially at home, but the second goal they conceded immediately after the break ultimately handed the match to Palace.
It looked a relatively simple intervention but Boro's usually impressive left-back Friend dallied when dealing with McArthur's pass and allowed Zaha to steal in for a simple finish on his left foot.
The home side recovered well and would have drawn level again had it not been for some excellent defending, but their spirited second-half comeback came to nought.
Man of the match - Wilfried Zaha (Crystal Palace)
What they said
Middlesbrough manager Aitor Karanka: "We have lost when we were in a good position. When you lose a game through mistakes it is difficult, but we have to think about the future and learn. We have to keep going.
"All of us have learned we can't drop our intensity in the Premier League, we have to play always in the same style. We had a lot of chances in the second half and if we had played the first half the same way we would have won the game.
"The club has done an amazing job building this squad, I am really pleased with them. We can't drive ourselves crazy because we are in a good position."
Crystal Palace boss Alan Pardew:
"The first 20 minutes were important for us that we built on the Bournemouth performance and we were terrific in that period, we deserved the lead.
"You can't control a whole Premier League game and we had to really hold on towards the end. If we do that for 38 games we'll go OK.
"We have some big players back at the ranch and hopefully we can get them fit.
"I thought Wilf (Zaha) was terrific and he deserved the assist and the goal. He showed qualities offensively and defensively."
Middlesbrough next play away to Everton in a 15:00 BST kick-off on Saturday. Palace play again next Sunday when they host Stoke at 14:15.
The stats you need to know
- Middlesbrough suffered their first defeat in their last 14 league games (W7 D6).
- Crystal Palace finally secured an away league win in 2016 at the 12th attempt.
- Christian Benteke is the first Belgian to score for three different Premier League clubs (Aston Villa, Liverpool and Crystal Palace).
- Wilfried Zaha scored for the first time in his last 24 Premier League appearances, last scoring in November 2015 v Newcastle.
- Daniel Ayala netted his first Premier League goal in his 15th appearance in the top flight (5 games for Liverpool, 7 for Norwich and 3 for Middlesbrough).
- All four of Boro's goals this season have come in the first half.
- 8ClaytonSubstituted forde Roonat 57'minutes
- 18StuaniSubstituted forTraoréat 81'minutes
- 11FischerSubstituted forRamírezat 57'minutesBooked at 60mins
- 14de Roon
- 2WardBooked at 82mins
- 16LedleySubstituted forFlaminiat 84'minutes
- 11ZahaBooked at 90mins
- 10TownsendSubstituted forLeeat 77'minutes
- 17BentekeSubstituted forBentekeat 84'minutes
- Neil Swarbrick
- Shots on Target
Second Half ends, Middlesbrough 1, Crystal Palace 2.
Wilfried Zaha (Crystal Palace) is shown the yellow card for a bad foul.
George Friend (Middlesbrough) wins a free kick on the left wing.
Foul by Wilfried Zaha (Crystal Palace).
Attempt saved. Jonathan Benteke (Crystal Palace) right footed shot from outside the box is saved in the centre of the goal. Assisted by Lee Chung-yong.
Attempt missed. Stewart Downing (Middlesbrough) left footed shot from outside the box is close, but misses to the right.
Attempt saved. Gastón Ramírez (Middlesbrough) left footed shot from the left side of the box is saved in the bottom right corner. Assisted by Stewart Downing.
Attempt blocked. Marten de Roon (Middlesbrough) right footed shot from outside the box is blocked.
Attempt blocked. Adam Forshaw (Middlesbrough) left footed shot from the left side of the box is blocked. Assisted by Gastón Ramírez.
Offside, Middlesbrough. Adam Forshaw tries a through ball, but Álvaro Negredo is caught offside.
Substitution, Crystal Palace. Jonathan Benteke replaces Christian Benteke.
Substitution, Crystal Palace. Mathieu Flamini replaces Joe Ledley.
Attempt blocked. Joel Ward (Crystal Palace) right footed shot from outside the box is blocked. Assisted by Wilfried Zaha.
Joel Ward (Crystal Palace) is shown the yellow card.
Substitution, Middlesbrough. Adama Traoré replaces Cristhian Stuani.
Offside, Crystal Palace. Steve Mandanda tries a through ball, but Wilfried Zaha is caught offside.
Attempt missed. Daniel Ayala (Middlesbrough) header from the centre of the box is just a bit too high. Assisted by Stewart Downing with a cross following a corner.
Substitution, Crystal Palace. Lee Chung-yong replaces Andros Townsend.
Corner, Middlesbrough. Conceded by Joel Ward.