Demba Ba scored a late goal as Shanghai Shenhua laboured to 1-0 win