Dundee almost took the lead after five minutes when Tom Hutchinson's effort was headed against his own crossbar by Livi captain Oscar Rubio.
Five minutes later Marvin Andrews fired just wide from 20 yards. The visitors then had a strong penalty claim turned down when Eugene Dadi's cross appeared to strike Hutchinson on the hand, but the ref waved play on.
Dundee striker Fabian Caballero saw a good 20-yard effort turned around the post by Javier Sanchez Broto midway through the first half.
Five minutes later Jonay Hernandez went close for Dundee when he fired his 25-yard free-kick just wide of the target.
With half an hour played Livingston went 1-0 up. Dadi won an aerial challenge with Lee Wilkie and ran towards the right corner flag before crossing into the middle where midfielder Georgi Nemsadze poked the ball past his own keeper in an attempt to clear.
Dundee almost equalised five minutes later but Caballero's deflected effort crashed against the crossbar and was cleared.
Gavin Rae and Caballero both shot wide from outside the area as Dundee went in search of an equaliser an just before the interval Nemsadze also fired wide of target.
Seven minutes after the interval Dundee drew level. A great ball by Nemsadze split the Livi defence and Nacho Novo kept a cool head to slot the ball past Broto from ten yards.
With 15 minutes of the second half gone two good blocks by Broto denied Novo and Steve Lovell as Dundee put pressure on the visitors.
Fourteen minutes from time Dundee went 2-1 ahead. Nemsadze played a good ball to Novo on the right and the little striker skipped past David McNamee before crossing to Rae whose right-foot shot flew low past Broto from 12 yards.
Livingston pushed for an equaliser but failed to pressure Julian Speroni in the Dundee goal and the home team collected a valuable three points