United missed numerous opportunities in a game they dominated before Gomis’ shot deflected in off makeshift centre-back Lee Wallace 13 minutes from time.
Hearts’ only real chance at Tannadice came when Dusan Pernis denied Paul Mulrooney with a stunning save – and the midfielder was forced off late on as the visitors’ crippling injury list grew further.
Jose Goncalves, who Jim Jefferies vowed not to play until he agreed to sign a new contract, featured for the first time under the new Jambos boss amid reports permission had been sought to play him from majority shareholder Vladimir Romanov.
Goncalves, who had also shaken off a knee injury, was joined in the side by Suso Santana and Jamie Mole, while United brought back captain Andy Webster.
The visitors were forced into a late change when captain Michael Stewart failed to shake off a knock in the warm-up, meaning
Mulrooney started in midfield.
Despite being without 14 first-team squad members, Hearts started well, Suso forcing a smart 10th-minute save from Pernis with a low 25-yard drive.
But David Goodwillie wasted a great chance to put United in front 11 minutes later, the striker slashing wildly at Garry Kenneth’s flick-on from a corner from four yards.
Moments later, Kenneth volleyed too close to Janos Balogh from another corner.
At the other end, Mulrooney forced a superb save from Pernis when his driving run ended with a 20-yard rocket that was tipped wide by the Slovakian.
Ryan Stevenson blazed wide under pressure before Goodwillie missed another opportunity when he fired wide of Balogh’s near post.
Kenneth then nodded a corner over the top and Mulrooney sent a wicked ball across the United six-yard box that somehow evaded everyone.
The home support had optimistically screamed for handballs in the box more than once during the half and they appealed in vain again when Prince Buaben fell down under pressure from Suso.
Before the half was out, Damien Casalinuovo headed a Paul Dixon cross over as Balogh raced from his goal.
Christian Nade – on the bench despite disciplinary action against him for allegedly punching team-mate Ian Black still pending – came on for Mole during the interval.
Goodwillie could have scored in the 54th minute but his snapshot from Elliot’s block flew over.
Two minutes later, Jefferies threw on David Templeton for the ineffective Arvydas Novikovas.
And two minutes after that, Dixon went down injured and hobbled off eventually to be replaced by Sean Dillon.
Buaben should have broken the deadlock when he powered a header wide from Goodwillie’s cross in the 64th minute.
Jon Daly then replaced Casalinuovo before United’s latest penalty appeal fell on deaf ears when Kenneth claimed he was being impeded at a corner by Goncalves.
Danny Swanson curled a weak effort straight in the arms of Balogh midway through the half.
Arguably the best chance of the entire game fell to Buaben after brilliant work from Craig Conway, whose low cross the midfielder fired straight at makeshift left-back David Obua.
Daly weakly glanced a Dillon free-kick straight at Balogh before the war of attrition continued when both Kenneth and Stevenson went down hurt, though both played on.
Francisco Sandaza – who had been out all season after hernia surgery – was then introduced for Goodwillie 13 minutes from time to a rapturous reception, which grew when United immediately took the lead.
Conway’s free-kick broke to Gomis in the box and the Senegal midfielder’s left-foot finish took a big deflection past the helpless Balogh.
Mulrooney’s game ended in injury and Gordon Smith came on for the final nine minutes.
Nade became yet another Hearts injury concern late on but he was able to continue after some touchline treatment.
Sandaza went close to capping a dream comeback in the closing stages but the ball evaded him as he looked poised to pounce and Goncalves almost scored a comical own goal in stoppage-time.