The hardest pokémon I had trouble catching, was Giratina. I would usually get Giratina to 1 HP yet it would still be hard to catch him with Ultra Balls or whatever use I could make with the Dusk Balls [In the night]. I didn't really want to use my Master Ball at that time. The only time I could finally catch Giratina was when I gave it a status problem.
Mesprit was hard to catch as well as it kept fleeing, but I easily caught it when I got a Golbat to use Mean Look on it. I decided to use throw a few Ultra Balls, but the crazy thing is, is that I obtained it with a Poké Ball.