Albion had feared the Republic of Ireland striker would be out for up to eight weeks with a knee injury – but he was back after a month to earn his side a first win over the Trotters in seven years.
Jerome Thomas had given the Baggies the lead but then conceded the penalty which enabled Ivan Klasnic to level for the visitors.
Long’s winner helped him to make up for the disappointment of being unavailable for his country’s Euro 2012 play-off triumph against Estonia.
He looked sharp after his lay-off and troubled Bolton with his pace, tireless running and non-stop energy.
Playmaker Zoltan Gera also impressed in his first home start since a summer return from Fulham while Youssouf Mulumbu anchored the midfield.
Bolton had looked dangerous in the opening 45 minutes and full of confidence after the 5-0 home win over Stoke.
But they were second best after the break despite a battling display from Fabrice Muamba in the centre of the park and remain in the bottom three.
The visitors made a positive start and Chris Eagles was only just too high with a dipping volley from a narrow angle.
Bolton keeper Jussi Jaaskelainen palmed away a header from Jonas Olsson who was first to react to a Chris Brunt corner.
Mulumbu cleared a header from Bolton defender Gary Cahill off the line after he had been left unmarked at a Joe Riley corner.
Cahill made a superb tackle to knock Long out of his stride after he had seized onto Thomas’ throughball and his shot flew wide.
But after 16 minutes Thomas put Albion ahead with his first goal of the season, although replays appeared to indicate he was offside.
Gera supplied the telling throughball and Thomas calmly took the ball to the side of Jaaskelainen before shooting into an empty net.
Bolton needed only five minutes to get back on level terms and this time Thomas was the villain for the home side as he was adjudged to have brought down Muamba.
Up stepped Klasnic and his spot-kick contained too much power for Ben Foster even though the Albion keeper dived the right way.
Thomas had also given a penalty away in Albion’s last home game against Liverpool.
His mixed fortunes continued when he was yellow carded after 27 minutes for a challenge on Muamba.
The game continued to flow freely and Foster came to Albion’s rescue when he blocked a left-footed drive from Mark Davies. Then a Kevin Davies header was deflected over the bar from an Eagles corner.
Cahill threw himself in the way of a drive from Thomas as Albion enjoyed a spell of pressure at the start of the second period.
Thomas had another shot blocked and curled another effort over the bar. David Wheater made a vital interception in cutting out Gera’s low cross with Long ready to pounce.
Albion’s pressure paid off after 56 minutes with Long restoring their lead.
Thomas made a jinking run before releasing Nicky Shorey and his first time cross was met by Long who glanced his header past Jaaskelainen.
Bolton searched for an equaliser and Kevin Davies shot wide under pressure from Olsson.
Thomas was shooting at every opportunity and another attempt flew straight at Jaaskelainen.
In a rare Bolton raid, Foster got his body behind Mark Davies’ low attempt.
But Albion held on for win which moved them into the top half of the table.