Spearheaded by Oscar and Hulk, the big-spending Chinese title-holders headed to Australia with a massive reputation but Steve Corica’s men more than held their own.
The home team grabbed the lead three times and looked headed for their first win of the tournament when Alex Brosque tapped in to make it 3-2 with six minutes left.
But Shanghai never gave up and Elkeson linked up with former Chelsea midfielder Oscar late in the game to ruin their night.
It leaves Shanghai with four points after a win, a loss and a draw in their opening three Group H games, and plenty of work still ahead to qualify.
Seasoned Asian campaigners Sydney remain anchored to the bottom of the group on three points.
The home team stunned the visitors with a goal after just three minutes when a half cleared header found Dutch striker Siem de Jong, whose shot from the edge of the box took a deflection with goalkeeper Yan Junling going the wrong way.
Sparked into life, Shanghai pressed forward and were rewarded with an equaliser on 27 minutes when Oscar picked out Lu Wenjun with a cross and his glancing header found the net.
But Sydney were back in front just minutes later when He Guan was penalised for handball and former Bolton striker Adam Le Fondre drove home the penalty.
In a fast-paced first-half, the Chinese giants levelled the score again when Yu Hai headed in from close range after a pinpoint cross from ex-Porto star Hulk.
Oscar had a great chance to put them in front soon after the restart but he drilled his half-volley narrowly wide of the post.
As the clock ticked down, both teams went looking for the winner, creating plenty of chances but unable to find the killer touch until Brosque pounced after Ghoochannejhad’s header wasn’t held by the keeper.
Shanghai threw men forward and when Oscar picked up a loose ball in the dying minutes, he played it on to Elkeson who fired his shot high into the net.
Download our app and read this and other great stories on the move. Available for Android and iOS.