The Saddlers conceded twice in the opening nine minutes as 2019 started with defeat at play-off chasing Charlton.
Karlan Grant opened the scoring on six minutes and Lyle Taylor netted a quick-fire second from the penalty spot.
Andy Cook gave Walsall hope after the break but a spirited second-half showing fell short as the new year began in disappointing fashion.
The first goal of 2019 took just six minutes to arrive – but, unfortunately, it went to the Addicks.
Tariqe Fosu seized upon Morgan Ferrier’s misplaced pass and threaded a precise ball through to Karlan Grant, who calmly slotted through the legs of Liam Roberts.
It quickly got worse for the visitors as Charlton doubled their lead two minutes later.
Jack Fitzwater was penalised for pulling down Lyle Taylor, who stepped up to slam home the resulting penalty for his sixth goal in as many matches against the Saddlers.
Lee Bowyer’s men were in total control and could have added to their advantage; Ben Reeves curled a 25-yard free-kick narrowly wide and Jon Guthrie made an important block from Grant.
Walsall only started to threaten on the stroke of half-time, almost pulling one back when Josh Gordon’s fierce goalbound volley from Nicky Devlin’s cross was cleared off the line by Naby Sarr.
Gordon went close again moments later, turning smartly on the edge of the box before curling a right-footed shot towards the bottom corner which home keeper Dillon Phillips palmed away.
The visitors continued where they had left off after the break, halving the deficit on 47 minutes through top scorer Andy Cook.
The forward brought down Luke Leahy’s long ball on his chest before swivelling and firing a left-footed drive across Phillips and into the far corner.
Athletic had the ball in the net on the hour mark when Taylor headed home Ben Reeves’ corner from close range, but the goal was disallowed for a foul on Roberts.
The Saddlers responded with Cook driving purposefully across the 18-yard box and steering a powerful drive inches wide.
Walsall were knocking on the door; another Cook effort was blocked by Krystian Bielik and Josh Gordon fired over from Devlin’s deflected delivery.
Charlton remained a threat on the break, with Taylor cutting inside onto his right foot and stinging the palms of Roberts with a deflected shot.
Mark Marshall broke clear in stoppage time but a combination of Roberts and a defender managed to snuff out the danger.
Charlton (4-1-2-1-2): Phillips; Dijksteel, Bauer, Sarr, Stevenson; Bielik; Reeves (Pratley 83’), Morgan; Fosu (Marshall 86); Taylor, Grant.
Subs not used: Maynard-Brewer, Clarke, Ajose, Hackett-Fairchild, Sarpong-Wiredu.
Saddlers (4-1-2-1-2): L Roberts; Devlin, Fitzwater, Guthrie, Leahy; Dobson; Edwards (Morris 73’), Kinsella; Gordon (Ismail 83’); Cook, Ferrier.
Subs not used: Dunn, Johnson, Wilson, Ronan, Bates.
Attendance: 10,396 (172 Saddlers supporters).