Margot Robbie violently slapped Leonardo Dicaprio on the set of 'The Wolf of Wall Street'.

The 23-year-old actress got caught in the moment while filming Martin Scorsese's new black comedy and accidentally hit her A-list co-star hard across the face, much to her horror.

However, the 39-year-old hunk - who plays womanising stockbroker Jordan Belfort - was impressed with her courage and asked her to do it again.

She told GQ magazine: ''I got a little lost in the moment. I slapped his face and said, 'F**k you!' There was a stunned silence then they all burst out laughing.

''I'd thought they were going to sue me. I apologised profusely but Leo said, 'That was brilliant. Hit me in the face again!' ''

Meanwhile, Margot has admitted she finds it hard maintaining a slender figure for the cameras and tends to yo-yo diet because she can't resist fatty food.

The blonde bombshell joked: ''I don't have a very good diet. I love beer, fries, burgers, but if I have to get in a bikini then I ear carrot sticks for three days. I'm one extreme or the other. I'm not good at doing moderation.''