Mark Allen fought back to take a 9-7 lead over Kyren Wilson in their see-saw last 16 clash at the World Snooker Championship in Sheffield.