The two-time champions had scored 17 goals in their two pevious Group B games, but they had to be content with a point against the South Americans after Yurig Gregory dos Santos Ribeiro's goal was cancelled out by Ivan Dotsenko.
Ukraine had the better of the early possession in the first half, but it was Brazil who took the initiative with a fine breakaway goal when Marcos Yuri Cabral da Costa played in Dos Santos Ribeiro to find the corner.
But for a scrambling save by Kostyantyn Symashko after Cabral da Costa had worked space well, Ukraine might have been further behind.
However, they battled back and equalised five minutes after half time when Shkvarlo's shot was only parried and Dotsenko followed up to score.
The result means Ukraine win the group on goal difference and will play Iran in the semi-finals while Brazil must take on Russia in the other semi.
Russia confirmed their place at the top of Group A with a 3-1 win over Iran.
Aleksandr Kuligin, Viacheslav Larionov and Eduard Ramonov scored the goals while Iran briefly levelled at the start of the second half through Farzad Mehri's penalty, although they could not make their chances count.
Also in Group A, Iljas Visker scored a spectacular double and set up two goals for Stephan Lokhoff as Netherlands beat Argentina 4-1.
Visker's flick into the corner from Dennis Straatman's volley to put Netherlands 2-1 up will be a contender for goal of the tournament while his second, from distance, was also a fine strike.
Argentina had gone ahead after just six minutes through Mariano Morana, but they were quickly pegged back as Netherlands claimed a win that confirmed they would finish third in the group with Argentina bottom after three losses.
In the final game of the day, Great Britain gave the home crowd plenty to cheer about as a second goal in as many games from Ibz Diallo helped them to a fine 4-0 win over the USA.
The young forward added to his strike in the defeat against Ukraine with a 53rd-minute effort to put the game beyond doubt after James Richmond and George Fletcher had scored either side of the break.
Jonny Paterson rounded the victory off with a strike in injury time, as Britain recorded their first win of London 2012.