To stop Cresselia, get a pokemon (Golbat recommended) with mean look and with extremely high speed, and with a level higher than Cresselias. Mean look will stay on for the entire time that golbat or cresselia is standing. I'm not sure about block, though... Also, when it is weak enough (use false swipe) catch it with ultra balls , or dusk balls at night. I tihnk ultra are better. Hope this helped :)
Have a rare pokemon that knows block
To get Cresselia to stop fleeing you just hav to have a pokemon with 85 or higher speed (I think) and use a move like block or mean look or spider web. Hope this helps. Rate my answer best =D
Use mean look or block and it wont escape for like 7 turns
Well if you want to catch cresselia than get ready to drive in to f#ck town!! It took me a whole 3 days to catch it!! Firstly go to the place where you can find a golbat at its highest level. Catch it, train it to a reasonable level and put it first in your party (oh and make sure it knows mean look) . Now listen up . It is the best technique to catch bastard pokemon : Use heaps of pokeballs (like 50 or so) and finally use a ultra ball like 10 times and his yours ( I got to another answer to tell how to meet him)...