You have two chances to catch Mesprit. If you accidentally make it faint both times, you can't catch it anymore. If you made Mesprit faint once, find it, trap it, lower its hp to 1 using false swipe (you should have gotten the TM), let it escape, then encounter it again and use a quick ball.
Chat with our AI personalities
jiroxy ball...
After you beat the elite four and the galactic biulding
A Master Ball
You catch Mesprit in HeartGold in Route 48 on either Mondays and/or Wednesdays while listening to DJ Ben's Marching Band. Or at least I think! Hope I helped^_^ ~ Kaede Nagase.
Mesprit does flee from the battles normally at the beginning. But if you manage to inflict damage on it then when you see it again it will still have the damage to it. The best way I found to catch Mesprit is to get a level 30-40 Pokemon that knows Mean Look, I evolved my gastly as i found my captured Haunters didnt know Mean Look. Then give your Pokemon that knows mean look a quick claw. Track down Mesprit using the Poketech app (forgot what it is called, my apologies >.