McCulloch lashed the ball past Wanderers keeper Jussi Jaaskelainen with just over ten minutes of the game to play after earlier coming on for the injured Emile Heskey.
The former Motherwell player had three of Wigan's best chances after his introduction on the half hour mark but Bolton can look back in anger at a number of missed chances and an offside goal from Stelios Giannakopoulos.
Fellow striker Heskey was an injury doubt before the game was played and his fifth minute collision in the centre of the park with Bolton's Ivan Campo did little to help his cause.
Bolton had the first clear cut chance of the game on eleven minutes when El-Hadji Diouf threaded the ball through to Nicolas Anelka but the Frenchman blazed over the crossbar when in a one on one situation with Wigan keeper Chris Kirkland.
The Wanderers stand in skipper Gary Speed fired well into the South Stand from a good 25-yards out and El-Hadji Diouf did likewise after making a probing run down the flank.
Heskey's early omission seemed to spark Wigan into life and his replacement McCulloch went close with a shot from the edge of the area and a header from Emmerson Boyce's deep right wing cross just seconds after coming on.
Paul Jewell also made another bold change with ten minutes of the opening half remaining when he introduced lively Welsh youngster David Cotterill in place of the more experienced Gary Teale on the right wing.
Cotterill, despite his limited Premiership experience, saw a lot of the ball and Bolton didn't quite know how to best contain the man who recently joined the Latics from Bristol City.
On the stroke of half time Wigan's Austrian international Paul Scharner was spared the embarrassment of an own goal when he deflected a goal bound shot from Bolton's Kevin Davies wide for a corner.
Stelios Giannakopoulos did have the ball in the net for the Trotters but referee Mark Clattenburg and his assistants claimed that the veteran Greek midfielder was in an offside position.
Wanderers looked to make their mark in the opening exchanges of the second half and Davies went almighty close to breaking the deadlock when his header from a Gary Speed corner fell just wide of Kirkland's right post.
By now the hosts where beginning to take the game by the scruff of the neck and looked to be the ones most likely to win the match but Wigan still had their part to play and never let Bolton settle down.
With twenty minutes remaining Ivan Campo's rasping free kick looked likely to test Kirkland in the Wigan goal but the ball cannoned off Abdoulaye Faye en-route to goal.
Henri Camara and Leighton Baines had half chances for Wigan but could not test Wanderers keeper Jaaskelainen sufficiently. However the goal did eventually come for the visitors when Kevin Kilbane and Camara combined to set up McCulloch who made no mistake with his shot.
The Wanderers could only respond late on with a weak effort from Gary Speed and a Faye header which went into the side netting meaning that the next two games away at Sheffield United and Everton are all important to Bolton's hopes of staying on course for a Champions League place.
Bolton Wanderers: Jussi Jaaskelainen, Tal Ben-Haim, Abdoulaye Meite, Abdoulaye Faye, Henrik Pedersen (Nicky Hunt), Stelios Giannakopoulos, Ivan Campo, Gary Speed (Idan Tal), Kevin Davies (Ricardo Vaz-Te), Nicolas Anelka, El-Hadji Diouf
Subs Not Used: Johann Smith, Ali Al-Habsi
Wigan Athletic: Chris Kirkland, Emmerson Boyce, Andy Webster, Arjan De Zeeuw, Leighton Baines, Gary Teale (David Cotterill), Paul Scharnar, Denny Landzaat, Kevin Kilbane, Emile Heskey (Lee McCulloch), Henri Camara (Andreas Johansson)
Subs Not Used: Ole Gunnar Solskjaer, Tomasz Kuszczak
Referee:
Mark Clattenburg
Attendance:
21,255
Booked:
Kevin Davies (Bolton)
Kevin Kilbane (Wigan)
Denny Landzaat (Wigan)
Bookmark or share this story with: