The 13-year-old was off to a good start, qualifying second to put him starting in the number two position for the first heat.
The first heat saw him take the lead at the first corner and hold on for the first two laps of the race, but he was overtaken at the third lap and eventually finished the race in fourth.
Williams started heat two in second again, which he held for the first lap until he dropped to fifth. He spent most of the race swapping between fourth and fifth before being overtaken to finish sixth.
He then started the pre-final race in fifth but a crash between two drivers ahead saw him drop back to 10th.
Williams managed to finish the race in seventh, which is where he started the final race.
‘A couple of laps into the race I gained two positions by making two moves, one after the other, to jump to fifth,’ he said.
‘Down the straight of the same lap, I made an overtake to get into fourth.
‘I stayed in fourth for 15 laps until a group of karts caught up and I started battling (for the final three laps). I was overtaken down the straight and dropped to fifth.’
Despite being pushed off the track not long after and dropping to seventh, he managed to get back into fifth to cross the line just 0.006 seconds ahead of sixth.
He now moves up to the junior national class.