Goals from Nicky Bailey and Miguel Angel Llera gave Charlton victory but other results went against the Addicks to deny them automatic promotion.
Charlton, who now face Swindon in the play-offs, went ahead when Lloyd Sam's cross was tapped in by Nicky Bailey.
Miguel Llera made it two when his tame free-kick squirmed embarrassingly through Darryl Flahavan's grasp.
Bailey missed an open goal to make it 2-0 while managerless Oldham posed little threat in front of goal.
Charlton's fate was never in their hands, Leeds earning promotion by beating Bristol Rovers, while Millwall defeated Swindon to finish third.
Phil Parkinson's men finish the season in fourth place, but still have a chance to reach the Championship.
Oldham caretaker manager Martin Gray told BBC Radio Manchester:
"Today's performance was reasonably good but the mistakes made summed the season up.
"I think it's important at this stage of the season that with very little to play for that you need to give the young boys, who are the future of the club, the opportunity to go out there.
"I think every football club at the bottom half of the table financially are finding it very difficult to compete with the Charlton, Leeds and Huddersfield so I think youth is the way forward."
Charlton Athletic boss Phil Parkinson told BBC London 94.9:
"We just came to focus on what we had to do here and didn't want anyone telling us the scores but obviously the crowd's reaction said it all.
"So we had that brief spell and the possibility everything was looking rosy but it wasn't to be.
"Realistically, we came here with the mindset to win the game and to get the second leg of the play-offs at home, and we've done that job."
Live text and stats
Saturday, 8 May 2010
16 Gregan yellow card
08 Smalley (Millar 66)
09 Abbott (Eaves 46)
11 Guy (Brooke 66)
06 Semedo (Spring 82)
11 Sam yellow card (Wagstaff 74)
23 Mooney (A Sodje 85)
33 A Sodje,
Ref: WebsterAtt: 5,686
Attempts on target
Attempts off target
90:00+2:53 The referee blows his whistle to end the game.
88:44 Free kick awarded for an unfair challenge on Sean Gregan by Akpo Sodje. Sean Gregan takes the free kick.
86:08 Shot from long distance by Dale Stephens misses to the right of the target.
85:52 Centre by Jim Goodwin.
84:34 Substitution Akpo Sodje joins the action as a substitute, replacing David Mooney.
83:02 Dale Stephens takes a shot. Save made by Darren Randolph. Corner taken right-footed by Dale Stephens from the left by-line,
Miguel Angel Llera manages to make a clearance.
81:07 Free kick taken by Christian Dailly.
81:07 Substitution Jose Vitor Semedo leaves the field to be replaced by Matthew Spring.
81:07 Free kick awarded for an unfair challenge on Miguel Angel Llera by Ryan Brooke.
79:44 Jim Goodwin delivers the ball.
77:04 The official flags Deon Burton offside. Indirect free kick taken by Sean Gregan.
75:51 David Mooney produces a cross.
73:09 The free kick is delivered right-footed by Dale Stephens from right channel.
73:09 Substitution Lloyd Sam goes off and Scott Wagstaff comes on.
73:09 Christian Dailly challenges Tom Eaves unfairly and gives away a free kick.
70:12 The ball is swung over by Lloyd Sam, blocked by Paul Black.
69:02 The ball is sent over by Chris Taylor, Gary Borrowdale manages to make a clearance. Dale Stephens takes a corner.
67:32 Corner taken right-footed by Frazer Richardson.
67:00 The referee blows for offside. Sean Gregan takes the free kick.
66:15 Jose Vitor Semedo fouled by Ryan Brooke, the ref awards a free kick. Miguel Angel Llera takes the direct free kick.
64:52 Darryl Flahavan takes the indirect free kick.
64:52 Substitution Lewis Guy leaves the field to be replaced by Ryan Brooke.
64:52 Substitution Kirk Millar on for Deane Smalley.
64:52 David Mooney is flagged offside by the assistant referee.
64:27 A cross is delivered by Frazer Richardson, save made by Darryl Flahavan.
63:27 Paul Black sends in a cross.
62:19 Reuben Hazell concedes a free kick for a foul on David Mooney. Free kick crossed by Gary Borrowdale. Jose Vitor Semedo takes
a shot. Blocked by Sean Gregan.
60:36 Free kick crossed by Dale Stephens, clearance by Gary Borrowdale. Paul Black has an effort at goal from outside the area which
goes wide left of the target.
60:36 Booking The referee cautions Lloyd Sam for unsporting behaviour.
60:26 Chris Taylor fouled by Lloyd Sam, the ref awards a free kick.
59:49 Unfair challenge on Chris Taylor by Lloyd Sam results in a free kick. Sean Gregan takes the direct free kick.
59:30 Jim Goodwin produces a cross, save made by Darren Randolph.
58:59 The ball is sent over by Frazer Richardson, clearance made by Jim Goodwin.
57:50 Jose Vitor Semedo concedes a free kick for a foul on Dale Stephens. Sean Gregan restarts play with the free kick.
56:42 Close range shot by Nicky Bailey goes wide of the right-hand upright.
55:14 Foul by Deon Burton on Sean Gregan, free kick awarded. Free kick taken by Sean Gregan.
53:31 Free kick crossed right-footed by Frazer Richardson from right channel, Sean Gregan makes a clearance. Effort from the edge
of the area by Therry Racon goes wide of the left-hand post.
53:31 Booking Sean Gregan is cautioned.
53:23 Sean Gregan gives away a free kick for an unfair challenge on David Mooney.
50:41 Dale Stephens takes a weak shot and missed to the right of the goal.
50:14 Free kick awarded for an unfair challenge on Reuben Hazell by Therry Racon. Reuben Hazell takes the free kick.
49:25 Dale Stephens sends in a cross, Danny Whitaker produces a right-footed shot from outside the penalty area and misses left.
48:48 Inswinging corner taken right-footed by Dale Stephens from the left by-line to the near post.
48:19 A cross is delivered by Frazer Richardson. David Mooney is adjudged to have handled the ball. Darryl Flahavan takes the direct
47:16 GOAL - Miguel Angel Llera:Oldham 0 - 2 Charlton Miguel Angel Llera hits the back of the net with a goal direct from the free kick from long range to the bottom left corner
of the goal. Oldham 0-2 Charlton.
46:14 Jim Goodwin challenges David Mooney unfairly and gives away a free kick.
45:01 The second half has started.
45:01 Substitution Tom Eaves joins the action as a substitute, replacing Pawel Abbott.
45:00+0:49 Therry Racon sends in a cross.
45:00+0:36 The first half comes to an end.
45:00+0:19 A cross is delivered by Jose Vitor Semedo.
40:10 Danny Whitaker challenges Therry Racon unfairly and gives away a free kick. Direct free kick taken by Darren Randolph.
39:36 Inswinging corner taken from the left by-line by Dale Stephens, Christian Dailly makes a clearance.
38:00 The ball is swung over by Nicky Bailey.
35:07 Free kick awarded for an unfair challenge on Therry Racon by Pawel Abbott. Christian Dailly restarts play with the free kick.
34:14 The referee blows for offside. Free kick taken by Darren Randolph.
32:12 The offside flag is raised against Deon Burton. Sean Gregan restarts play with the free kick.
28:58 The offside flag is raised against David Mooney. Free kick taken by Darryl Flahavan.
27:42 Free kick awarded for an unfair challenge on Therry Racon by Danny Whitaker. Free kick taken by Gary Borrowdale.
26:21 Unfair challenge on Chris Taylor by Frazer Richardson results in a free kick. Chris Taylor restarts play with the free kick.
25:01 Gary Borrowdale delivers the ball.
23:42 The assistant referee signals for offside against Nicky Bailey. Free kick taken by Reuben Hazell.
22:29 Lloyd Sam provided the assist for the goal.
22:29 GOAL - Nicky Bailey:Oldham 0 - 1 Charlton Nicky Bailey finds the net with a goal from close in to the bottom left corner of the goal. Oldham 0-1 Charlton.
22:24 Lloyd Sam produces a cross,
22:05 Frazer Richardson sends in a cross.
20:46 Foul by Paul Black on David Mooney, free kick awarded. Free kick crossed right-footed by Frazer Richardson.
19:16 The assistant referee flags for offside against Pawel Abbott. Darren Randolph takes the free kick.
17:38 Inswinging corner taken left-footed by Gary Borrowdale.
16:59 Lloyd Sam sends in a cross, blocked by Paul Black. Corner taken by Gary Borrowdale played to the near post, Reuben Hazell
makes a clearance.
14:31 Nicky Bailey produces a right-footed shot from long range which goes wide right of the goal.
13:41 The ball is crossed by Chris Taylor, clearance made by Christian Dailly. Corner from left by-line crossed in by Dale Stephens.
10:12 The ball is swung over by Lloyd Sam, clearance made by Sean Gregan.
6:23 The ball is delivered by Lewis Guy, Frazer Richardson manages to make a clearance. Corner taken short by Chris Taylor, The
ball is swung over by Paul Black, Frazer Richardson manages to make a clearance.
5:08 Danny Whitaker takes a shot. Blocked by Christian Dailly.
4:16 Corner taken by Dale Stephens, clearance made by Jose Vitor Semedo.
1:06 Nicky Bailey fouled by Deane Smalley, the ref awards a free kick. Direct free kick taken by Gary Borrowdale.
0:00 The game begins.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.