Kagisho Dikgacoi's strike gave Crystal Palace their first league win against Charlton at The Valley since 1968.
The South African midfielder lashed home just after the break as Palace, who lost their opening three games, recorded a second successive win.
Charlton thought they had taken the lead on the half-hour through Bradley Wright-Phillips, only for the goal to be harshly disallowed for offside.
- Charlton had won seven of the previous nine league meetings with Palace, losing only one
- The Addicks went into the game having picked up 19 points out of 21 in the last seven home matches
The result sees the Eagles leapfrog their south London rivals in the table.
Palace could have been two up in the opening 10 minutes as winger Wilfried Zaha tormented the home defence with his strength, pace and skill.
Zaha's first pull-back from the goal-line was blasted over by Dikgacoi.
Moments later, another powerful weaving run and cross found Glenn Murray, whose effort was blocked by Addicks keeper Ben Hamer before Leon Cort hacked Owen Garvan's follow-up off the line.
The home side fought their way back into the match, though, and they were denied when Cort nodded Lawrie Wilson's free-kick to Wright-Phillips.
The striker, watched by father and Palace legend Ian Wright in the stands, appeared to be onside as he buried a header past Julian Speroni, but the linesman's flag cut his celebrations short.
The hosts were well on top as the first half came to a close with Yann Kermorgant heading Johnnie Jackson's cross wide and Dale Stephens, who saw a deadline-day move to Aston Villa fall through, driving narrowly over.
An end to away-day woes
- This was Palace's first league win on the road in 2012, and victory only came at their 13th attempt
But it was Palace who took the lead five minutes after the interval when Charlton failed to deal with Garvan's corner.
Damien Delaney was unmarked as he headed the ball back to Dikgacoi, and the former Fulham midfielder crashed the ball past Hamer from 12 yards.
The hosts, trying to protect an unbeaten home league record stretching back to March, blew a fine opportunity to level after 71 minutes when Cort nodded another Wilson free-kick downwards but Danny Hollands scuffed wide.
In four dramatic minutes of stoppage time Charlton substitute Ricardo Fuller, recently signed after being released by Stoke, had a deflected effort tipped on to the bar by Speroni.
Addicks keeper Hamer charged into the box for the resulting corner and, but for Garvan defending on the goal-line, would have scored an amazing headed equaliser.
Still there was more drama, though, as Hamer went for an audacious overhead kick from the rebound.
But the ball fell to safety, and the visitors went home with all three points.
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +4:32
Effort from a long way out by Lawrie Wilson goes wide right of the goal.90:00 +2:35 Substitution
Substitution Wilfried Zaha leaves the field to be replaced by Joel Ward.90:00 +2:35
The ball is sent over by Lawrie Wilson, Ricardo Fuller takes a shot. Save by Julian Speroni. Corner taken by Dale Stephens from the left by-line played to the near post, Ben Hamer takes a shot. Owen Garvan manages to make a clearance. Ben Hamer produces a right-footed shot from inside the area that clears the crossbar.90:00 +1:37
Free kick awarded for an unfair challenge on Danny Hollands by Aaron Wilbraham. Ben Hamer takes the direct free kick.89:06
Darcy Blake challenges Chris Solly unfairly and gives away a free kick. Free kick crossed right-footed by Dale Stephens from left wing, Julian Speroni makes a save.88:41
Owen Garvan crosses the ball.88:07
Short corner taken by Owen Garvan from the right by-line.86:49 Substitution
Substitution (Crystal Palace) makes a substitution, with Aaron Wilbraham coming on for Glenn Murray.86:20
The ball is sent over by Danny Green, Julian Speroni makes a brilliant save.85:24
Ricardo Fuller has a shot on goal from outside the area which misses right.84:34
Free kick awarded for a foul by Wilfried Zaha on Chris Solly. Chris Solly takes the direct free kick.83:55
The ball is crossed by Chris Solly, Headed effort from deep inside the area by Ricardo Fuller misses to the left of the goal.83:04
A cross is delivered by Lawrie Wilson, Effort from deep inside the area by Ricardo Fuller misses to the right of the goal.81:15
Effort on goal by Dale Stephens from a long way out goes over the bar.79:11
Owen Garvan produces a drilled right-footed shot from 12 yards. Leon Cort gets a block in. Outswinging corner taken left-footed by Owen Garvan, Bradley Wright-Phillips makes a clearance.77:53
The ball is swung over by Danny Green.75:29 Substitution
Substitution (Charlton) makes a substitution, with Danny Green coming on for Bradley Pritchard.75:29
Jonathan Parr gives away a free kick for an unfair challenge on Bradley Pritchard. The free kick is delivered right-footed by Lawrie Wilson from right channel.73:13 Substitution
Substitution Jonathan Williams on for Yannick Bolasie.
Booking Glenn Murray goes into the book for dissent.71:55
Unfair challenge on Bradley Pritchard by Yannick Bolasie results in a free kick. Lawrie Wilson crosses the ball in from the free kick, clearance by Glenn Murray.69:59
Lawrie Wilson crosses the ball from the free kick right-footed from right wing. Close range shot by Danny Hollands misses to the left of the goal.69:59 Booking
Booking Yannick Bolasie is booked.69:49
Unfair challenge on Bradley Pritchard by Jonathan Parr results in a free kick.68:13
Yann Kermorgant produces a strike on goal direct from the free kick.68:13 Booking
Booking Mile Jedinak booked.68:06
Free kick awarded for a foul by Mile Jedinak on Ricardo Fuller.67:00
Free kick awarded for a foul by Yannick Bolasie on Dale Stephens. Ben Hamer takes the direct free kick.65:23
Free kick awarded for a foul by Bradley Wright-Phillips on Damien Delaney. Free kick taken by Damien Delaney.64:12
Bradley Pritchard sends in a cross.63:45
Free kick awarded for an unfair challenge on Danny Hollands by Glenn Murray. Ben Hamer takes the free kick.62:41
Lawrie Wilson produces a cross, Header by Ricardo Fuller from deep inside the penalty area misses to the left of the goal.61:16
Owen Garvan delivers the ball from the free kick left-footed from left wing, blocked by Bradley Pritchard.61:16 Booking
Booking The referee shows Lawrie Wilson a yellow card.61:08
Free kick awarded for an unfair challenge on Yannick Bolasie by Lawrie Wilson.60:02
Inswinging corner taken by Owen Garvan from the right by-line, Ben Hamer makes a save.59:06
The ball is swung over by Glenn Murray, save by Ben Hamer.57:59 Substitution
Substitution Johnnie Jackson goes off and Ricardo Fuller comes on.56:23
Effort from 20 yards by Yannick Bolasie. Blocked by Danny Hollands.54:52
Corner taken by Owen Garvan, save made by Ben Hamer.53:33
Inswinging corner taken left-footed by Owen Garvan, Headed effort from deep inside the penalty area by Glenn Murray goes harmlessly over the crossbar.52:31
Yannick Bolasie takes a shot. Save made by Ben Hamer.51:55
Johnnie Jackson challenges Kagisho Dikgacoi unfairly and gives away a free kick. Free kick taken by Julian Speroni.50:42
Assist on the goal came from Damien Delaney.50:42 Goal scored
Goal! - Kagisho Dikgacoi - Charlton 0 - 1 C Palace A brilliant goal is scored by Kagisho Dikgacoi from inside the box to the top left corner of the goal. Charlton 0-1 Crystal Palace.49:58
Owen Garvan sends in a cross, clearance by Leon Cort. Wilfried Zaha takes a short corner. The ball is delivered by Wilfried Zaha, clearance made by Johnnie Jackson. Corner from right by-line taken by Owen Garvan.48:42
Chris Solly delivers the ball, Mile Jedinak makes a clearance.47:46
Free kick awarded for a foul by Johnnie Jackson on Darcy Blake. Julian Speroni restarts play with the free kick.46:39
Chris Solly sends in a cross, clearance by Jonathan Parr.45:01
The second half has started.45:00 +2:44 Half time
Half Time The whistle is blown to end the first half.45:00 +1:48
Free kick awarded for a foul by Dale Stephens on Wilfried Zaha. The free kick is delivered left-footed by Owen Garvan from left channel, clearance by Leon Cort. Effort from long range by Yannick Bolasie goes wide right of the target.45:00 +0:20
Damien Delaney gives away a free kick for an unfair challenge on Bradley Wright-Phillips. Strike comes in from Johnnie Jackson from the free kick, save by Julian Speroni.43:42
The ball is crossed by Bradley Wright-Phillips, Damien Delaney makes a clearance. Dale Stephens takes the inswinging corner, Glenn Murray manages to make a clearance.42:25
Wilfried Zaha produces a left-footed shot from the edge of the box and misses to the right of the target.40:35
Effort from just outside the box by Dale Stephens goes over the bar.38:36
Johnnie Jackson sends in a cross, Headed effort from inside the area by Yann Kermorgant misses to the left of the goal.37:50
Bradley Wright-Phillips gives away a free kick for an unfair challenge on Damien Delaney. Julian Speroni takes the free kick.37:21
Shot from 35 yards by Yannick Bolasie missed to the right of the net.33:16
Johnnie Jackson takes a shot. Blocked by Peter Ramage.32:49
Yannick Bolasie takes a shot. Comfortable save by Ben Hamer.31:26
Mile Jedinak gives away a free kick for an unfair challenge on Bradley Wright-Phillips. Lawrie Wilson crosses the ball in from the free kick. Bradley Wright-Phillips is caught offside. Indirect free kick taken by Julian Speroni.30:31
Corner taken short by Yannick Bolasie, A cross is delivered by Wilfried Zaha, save by Ben Hamer.29:53
Johnnie Jackson is flagged offside by the assistant referee. Julian Speroni takes the free kick.28:30
The referee gives a free kick against Glenn Murray for handball. Direct free kick taken by Ben Hamer.26:59
Shot on goal by Yannick Bolasie from just inside the area clears the crossbar.24:26
Short corner taken by Yannick Bolasie, Wilfried Zaha sends in a cross, clearance made by Chris Solly.22:51
Lawrie Wilson fouled by Yannick Bolasie, the ref awards a free kick. Lawrie Wilson takes the free kick.22:41
Yann Kermorgant takes a shot. Blocked by Damien Delaney.21:24 Substitution
Substitution Rhoys Wiggins leaves the field to be replaced by Lawrie Wilson.21:24 Booking
Booking Dale Stephens goes into the referee's book.17:32
A cross is delivered by Darcy Blake.17:15
Wilfried Zaha sends in a cross, blocked by Michael Morrison.17:07
The ball is crossed by Glenn Murray.16:22
A cross is delivered by Johnnie Jackson, clearance by Peter Ramage.15:22
The ball is sent over by Danny Hollands, blocked by Jonathan Parr.12:47
Jonathan Parr crosses the ball, Michael Morrison manages to make a clearance.11:27
Rhoys Wiggins sends in a cross.11:01
Wilfried Zaha produces a cross, Owen Garvan takes a shot. Leon Cort gets a block in.9:45
Rhoys Wiggins sends in a cross, Jonathan Parr manages to make a clearance.6:32
Shot from deep inside the area by Kagisho Dikgacoi goes over the bar.5:59
Wilfried Zaha sends in a cross, save made by Ben Hamer.4:05
The ball is swung over by Rhoys Wiggins, Bradley Pritchard takes a shot. Julian Speroni makes a comfortable save.3:24
Bradley Pritchard fouled by Owen Garvan, the ref awards a free kick. Ben Hamer takes the direct free kick.1:39
Bradley Wright-Phillips fouled by Damien Delaney, the ref awards a free kick. Free kick taken by Ben Hamer.0:00
The ref blows the whistle to begin the match.
Live data and text provided by our data suppliers