The hosts seemed to have the control when they established a first half lead thanks to tries by Greig Tonks and Willam Nel - but Zebre hit back to lead at the break.
However a third try, from Cornell Du Preez, plus two conversions and two penalties by Harry Leonard gave the Scottish - playing for the second week at home and against Italian opposition - a 25-23 success.
The visitors contributed much to the game and scored two first half tries from Tomasso Iannone and Leonardo Sarto, with stand-off Luciano Orquera converting both and kicking three penalties.
Following criticism by coach Alan Solomons for their 'frenetic' play, Edinburgh made a low-key start - not helped by stand-off Leonard failing with a relatively easy penalty in just the eighth minute.
Zebre made more of the running, well marshalled by scrum-half Brendon Leonard. They drew level in the 16th minute thanks to a penalty from Orquera, after Edinburgh were penalised at a ruck.
Edinburgh immediately responded with a purple patch that produced two tries and seemed to have put them in control.
Firstly, open play saw Dougie Fife off his wing to penetrate centre field and throw a long pass for full-back Tonks to score in the left corner.
Then, a period of pick and go ended with prop Nel forcing his way over for the second successive week - Harry Leonard converted to put his side 12-3 ahead after 29 minutes.
However Zebre took up the challenge, scoring two tries of their own - both helped by Edinburgh errors - to go in at the break leading 17-12.
Firstly Sarto broke the tackle of Edinburgh centre Ben Atiga and put in Iannone. Then, after Edinburgh wing Jack Cuthbert dropped a high ball under no pressure, Zebre built pressure into stoppage time and right-winger Sarto scored for Orquera to kick his second conversion.
Early in the second half Edinburgh's Leonard pulled back three points with a simple penalty before collective effort kept out Zebre's responding attack.
Edinburgh then produced pressure of their own, driving a line-out with number eight Du Preez ultimately scoring and Leonard converting from touch.
Early in the third quarter each side was rewarded with a penalty - from Harry Leonard and then Orquera - for a spell of pressure.
Ortega kicked his third penalty in 74 minutes to make for an exciting few minutes, with an Ortega drop-goal attempt slipping the wrong side of a post.