The difference is subtle and even in Germany many people mix these two up.
Entschuldigung is used if you do something wrong or rude "Entschuldigen Sie bitte" or "Ich entschuldige mich (bei Ihnen/Dir)"
This is like the english "excuse me".
You can also use it in advance, for example if you want to jump a queue.
Verzeihen can only be done by the victim, its more like the english forgiveness. (Ich verzeihe Ihnen). But you can ask for Verzeihung like "Ich bitte um Verzeihung" or "Verzeihen Sie bitte". This is synonymous to "Bitte entschuldigen Sie".
But you cannot say "Ich verzeihe mir" instead of "Ich entschuldige mich" as this would be forgiving yourself for a mistake you did.