James Brown came close to giving the visitors the lead inside the opening five minutes when Damien Duff pulled the ball back to him on the edge of the box, but his effort was kept out by the crossbar.
Shortly after the restart, the home side broke the deadlock when a through-ball fell to Gameiro, who curled the ball just beyond Redmayne to give Sydney the lead.
On-loan striker Villa came off the bench to make his A-League debut for City, and marked his first appearance with a goal as he collected the ball from Duff before slotting it into the bottom corner.
Aaron Mooy tried to set up a winner for Melbourne inside the final 10 minutes, but his cross failed to find any of his teammates.
Sydney also came close to going back in front in the final moments as Terry Antonis lashed a volley onto the crossbar before Max Burgess fired the rebound wide, ensuring that the sides finished level.