Celtic had to play an hour with 10 men in Thursday's Europa League draw in Bologna but started energetically and had already had a sniff at goal by the time they took an early lead, Liam Scales heading straight at Craig Gordon from a Kieran Tierney corner.
However, the former Celtic goalkeeper had no chance moments later.
Marc Leonard, making his debut in midfield on loan from Birmingham City, looked a yard off the pace as he hauled down Nygren on the edge of the penalty box and the Sweden winger curled the free-kick over the wall and past Gordon.
Hearts had a chance to strike back almost immediately, but Braga's low drive was too close to goalkeeper Kasper Schmeichel with the forward in behind Scales.
It was Schmeichel to the rescue again when Trusty made a mess of a passback and, with Alexandros Kyziridis one-one-one with the goalkeeper, the Dane blocked the winger's low drive.
Hearts had looked shellshocked after that early goal but spent the last 20 minutes of the first half camped in Celtic's half in a game full of intensity, thunderous challenges, high balls and little flowing football.
The momentum continued in the hosts' favour immediately after the break as Leonard's corner to the back post was headed down by Findlay past Schmeichel.
New Celtic signing Tomas Cvancara was having a quiet debut, but the on-loan Borussia Monchengladbach striker burst into life with a looping header off the crossbar.
Moments later, he burst clear and his low cross into the six-yard box was slotted home by Yang.
Just when it looked like the pendulum was swinging in Celtic's favour, a video assistant referee (VAR) check turned Trusty's yellow card into red.
And, although Schmeichel saved from point-blank range to deny Braga, the forward made no mistake moments later to rescue a point for the hosts, who were then denied victory despite late pressure as Blair Spittal's shot bounced off the crossbar.