Abdoulaye Faye scored his first goal for Bolton to set them on their way to a deserved victory over Arsenal.
The Senegalese, who signed a permanent deal this week, headed in a cross from Stelios Giannakopolous on 20 minutes.
Provider Giannakopolous then turned finisher 12 minutes later when he slotted home after Kevin Davies had embarrassed Gilberto Silva.
Thierry Henry twice hit the post with thunderous drives from outside the box but Arsenal could find no way through.
And aside from Henry's two moments of incision, Arsenal's efforts on goal were woeful.
Skewed shots from Robin Van Persie and a weak Cesc Fabregas header, which barely warmed Jussi Jaaskelainen's hands in the freezing cold, were best forgotten.
By contrast Bolton produced a performance of pace, power and ruthlessness, particularly in the way they exposed Arsenal's ill-at-ease emergency left-back Pascal Cygan.
The ploy led to both their goals, with the opener coming after the clumsy Cygan had conceded a free-kick in a dangerous area.
A sustained aerial bombardment ensued and eventually Giannokopolous hooked the ball back into the box.
Faye used his giant frame to dominate the diminutive Fabregas to steer a header into the right corner.
Arsenal's vulnerability was not confined to their left side - in fact their midfield was so porous that waves of Bolton attacks went unstemmed.
And although there was little sophistication about Bolton's tactics, they were highly effective as Arsenal struggled with their shape.
Where the hosts had the destructive force and discipline of Faye in midfield, Arsenal had a below-par Gilberto and the lightweight Fabregas.
It had the look of a mismatch about it, and Bolton's sense of their superiority increased as did their playing tempo.
Indeed it was Gilberto's woeful defending - covering for the missing-in-action Cygan - which allowed Bolton to help themselves to a second goal.
Davies stole the ball and left the Brazilian's face as crimson as his shirt before he stroked the ball square for the onrushing Giannakopoulos to convert with a crisp connection.
Arsenal's response came, typically, from Henry.
The Frenchman flicked the ball up on the edge of the box with his left boot and hammered a volley with his right, but his shot cannoned back off the upright.
However, the audacious skill seemed out of place in an Arsenal team struggling with the basics.
Only keeper Jens Lehmann was acquitting himself well, producing great saves to thwart Faye and then Kevin Nolan.
After the interval, Henry hit the post with another sweetly-struck drive and Pires was foiled by Jaaskelainen, who did superbly well to block the follow-up.
A Gunners comeback never seemed likely while they continued to look nervous each time Bolton pushed for a third goal.
And the hosts would have got it had Lehmann not managed to produce an outstanding, sprawling save to deny substitute Ricardo Vaz Te late on.
Bolton manager Sam Allardyce:
"We put Arsenal under severe pressure, they made mistakes and we capitalised on that.
"It's maybe slightly greedy to want three goals against Arsenal but they were there for the taking.
"We ran harder and were more committed than they were, we scored great goals and totally deserved to win."
Arsenal manager Arsene Wenger:
"It was a difficult game but we made it difficult for ourselves. We gave away two easy goals and that increased Bolton's morale.
"We were shaky on the set-pieces and it was a physical game. Bolton wanted it more and deserved to win.
"It was just not good enough. But Bolton played well and took advantage of our lack of commitment and desire."
Bolton: Jaaskelainen, O'Brien, N'Gotty, Ben Haim, Gardner, Faye (Jaidi 86), Nolan, Speed, Giannakopoulos (Vaz Te 81), Diouf, Davies.
Subs Not Used: Okocha, Walker, Fadiga.
Goals: Faye 20, Giannakopoulos 32.
Arsenal: Lehmann, Lauren (Eboue 73), Toure, Campbell, Cygan, Pires, Fabregas (Reyes 68), Silva, Ljungberg, Van Persie (Bergkamp 68), Henry.
Subs Not Used: Senderos, Almunia.
Booked: Lauren, Cygan.
Ref: H Webb (S Yorkshire).