Train them with consistent, immediate responses.
My daughter was told about a way to discipline that simplified it for her and which works for misbehavior. The child that is acting out is not pleasant to have around and so they immediately go to their room. She uses this with nearly all misbehavior.
At first she had to take them to their room and stay outside the open door to be sure they stayed but gradually they learned that they would just have to stay longer by trying to leave. They could play in their room, listen to music, watch a short video, whatever they wanted to do that wasn't destructive. When they were ready to say sorry, they could come out and tell you sorry. Then have a brief conversation with them about why they were sent to the room and how you expect them to behave. Then a hug and they're on their way.
This works best when they're sent to their room immediately before you've succumbed to yelling. You decide when and if you give warnings. If you're warning them then say something to let them know that if they continue they'll be going to their room. Explain the process to them in terms they'll understand.
With two kids you do have to send them to different rooms. One of my grandkids went to the spare room/office/play room and the other to their bedroom.
I, too, have an extreme amount of patience and learned with my daughter, now grown and a parent, that my patience was not so helpful because when the patience runs out frustration sets in. I thought that if I parented with patience that my child would be reasonable to do as I said. Wrong! Children are born needing to test boundaries. It's not that they're out of control so much as we're not enforcing boundaries. We need to know the boundary and enforce it before we've lost our patience. Consistent and immediate are the words to remember.