A Kris Commons header gave Celtic the edge in their Champions League third qualifying round tie.
With the hosts struggling to break down stubborn Elfsborg, the forward found the net on 76 minutes, nodding home a cross from Emilio Izaguirre.
James Forrest struck the crossbar with a first-half effort as Celtic were frustrated for long spells.
The well-organised visitors rarely threatened but also found the bar via a fantastic Fraser Forster save.
Celtic thoroughly deserved to win but will need to iron out some slack elements in their play ahead of next week's return leg in Sweden, with Swedish champions Elfsborg unbeaten on their artificial home pitch since September 2011.
Should Celtic come through the return leg, only the play-offs, with the first leg to take place on 20 or 21 August, stand between them and the group stages of the main competition.
It would be the second successive year Celtic achieved the feat, having come through qualifying last term before
in the group stages and then
losing to Juventus in the last 16.
Neil Lennon's men almost made the perfect start as Anthony Stokes flashed a shot wide from a tight angle inside 12 seconds but showed signs of early season rust in the opening 45 minutes against a side midway through their domestic campaign.
Much of the pre-match talk concentrated on Mohamed Bangura, the Celtic striker on loan at Elfsborg, and whether or not he would play.
With no arrangement in place to prevent his selection, visiting manager boss Jorgen Lennartsson thrust the Sierra Leone player further into the limelight and his arrival on the pitch was marked with a loud chorus of boos.
The 24-year-old, who failed to score in 16 Celtic appearances, had an early low strike saved by Forster but faded from the match and was only really noticed again late in the second-half when a couple of theatrical tumbles enraged the home support.
Those fans were on their feet on 20 minutes when Forrest connected with a long, looping cross from Commons but the winger's side-foot volley spun off the turf and cannoned against the crossbar.
Soon after, Elfsborg also struck the frame of the goal, with Forster doing brilliantly to get a touch on a fierce strike from Anders Svensson.
The 37-year-old Sweden international was a stand-out performer throughout, providing great cover for his back four.
Celtic defender Efe Ambrose headed over from a corner before a free-kick from Stokes was tipped over by Kevin Stuhr-Ellegaard on the stroke of half-time.
With new signing from Ajax Derk Boerrigter left out of the squad, Georgios Samaras was Celtic's main threat on the left and the galloping Greek had a shot saved right from the second-half whistle.
The Swedes were being pinned back as Celtic injected more pace and aggression into their attacks and Elfsborg responded with a series of cynical challenges to disrupt play.
Another shot from Samaras was deflected wide, with the forward claiming it had struck an arm in a yellow shirt.
With striker Stokes dropping ever deeper in search of the ball and the volume from the crowd dipping, Elfsborg looked a good bet to return home with a clean sheet.
But the crucial breakthrough came with 14 minutes remaining as Commons did well to steer his header in at the back post.
Samaras then had a header blocked by a defender on the line as Celtic pressed briefly for another goal but there was to be no storming finale, with Lennon's men content to protect their lead and Elfsborg afraid to abandon their defensive approach.
The second leg of Celtic's Champions League third qualifying round tie against Elfsborg is being broadcast live on BBC Two Scotland on Wednesday 7 August, kick-off 18.45 BST.
- 01 Forster
- 03 Izaguirre Booked
- 04 Ambrose
- 06 Wilson
- 23 Lustig
- 08 Brown
- 15 Commons Booked
- 33 Kayal (Ledley - 66' )
- 49 Forrest
- 09 Samaras Booked (Mulgrew - 86' )
- 10 Stokes
- 24 Zaluska
- 02 Matthews
- 21 Mulgrew
- 22 Mouyokolo
- 16 Ledley
- 17 Balde
- 32 Watt
- 01 Stuhr-Ellegaard
- 06 Jonsson
- 15 Klarstrom Booked
- 07 Larsson Booked
- 08 Svensson Booked
- 11 Mobaeck
- 21 Hauger
- 24 Ishizaki Booked (Jorgensen - 85' )
- 25 Rohden
- 14 Keene Booked (Hult - 80' )
- 18 Bangura (Nilsson - 81' )
- 30 Hassan
- 03 Larsson
- 27 Soderberg
- 04 Jorgensen
- 16 Claesson
- 23 Hult
- 09 Nilsson
Ref: Manuel de Sousa