You don't have the right to put your hands on another person. You do have the right to yell at another person.
This pretty much sums it up, in that particular situation. To be more specific:
In Canada, you have a right to self-defence, but only as a defence against what would otherwise be a crime. Assaulting someone is always still a crime, so you can still be arrested, charged, and prosecuted for committing the crime of assaulting someone - but, then you have the right to defend yourself against the charge in court, and if you prove self-defence, then you won't be convicted of assault.
One key requirement of self-defence in Canada is that it can only be used if you had no other way of avoiding the assault against you. For example if you had an opportunity to escape by running away, but you instead chose to stand and fight, then your defence will fail and you can be convicted.
TL;DR The cops can still arrest you for the assault, indeed they are supposed to.
But cops have enormous legal leeway to decide when
not to arrest someone.
Screaming in someone's face could be public nuisance, disorderly conduct, and maybe even criminal harassment if they won't stop.
But the person who first makes it physical, is probably the one to get arrested.
If the goal is to get the other person arrested (and make a big scene, and come away looking like the victim), then the best strategy is to stand your ground, keep antagonizing them, and let them commit the physical escalation. If they keep escalating the cops will eventually be forced to arrest them (especially if your buttbuddy is filming).