George Bowerman's late winner gave in-form Walsall three points and spoiled David James' debut for Bournemouth.
Visiting skipper Andy Butler headed past James, who signed for the Cherries earlier this week, to open the scoring.
Bournemouth levelled with nine minutes left, Charlie Daniels driving home a loose ball to make it 1-1.
But Bowerman's close-range effort, his sixth goal of the season, was enough to seal a fourth win in five League One matches for improving Walsall.
Dean Smith's Saddlers, who have been involved in tense relegation battles in each of the last two seasons, have climbed to sixth in the table, two points behind leaders Tranmere.
A section of the home crowd, meanwhile, called for the dismissal of Cherries boss Paul Groves, having again failed to register a first home win of the campaign.
VIEW FROM THE DRESSING ROOM
Bournemouth manager Paul Groves told BBC Radio Solent:
"People have had opportunities and it's not quite gone our way.
"The crowd voiced their opinion, which they are entitled to do. They tried to get behind us from the off, and obviously once things go against us, then the crowd show their opinion. That is natural.
"My job is to try and continue to work with the players and address the issues that we might have in terms of trying to win some football matches."
Bournemouth 34 James 03 Cook Booked 04 Zubar 24 Addison 06 Partington (Fogden - 79' Booked ) 11 Daniels 17 McQuoid (Carmichael - 59' ) 30 Davids 32 O'Kane (Tubbs - 85' ) 14 Demouge 28 Barnard Substitutes 01 Jalal 13 Elphick 12 Fogden 36 Carmichael 38 Wakefield 18 Tubbs 22 Grabban Walsall 27 Darlow 04 Butler 05 Holden 14 Purkiss 26 Taylor 06 Featherstone 08 Cuvelier 24 Baxendale (Taundry - 75' ) 09 Grigg (Brandy - 88' ) 10 Paterson 17 Bowerman Substitutes 01 Grof 02 Taundry 22 Downing 11 Hemmings 16 Jones 12 Brandy 15 Taylor