My top 5 characters thus far:
#5 Reinhardt - Using the shield, you always feel like you're contributing with this guy. Bludgeoning people with your hammer is also super satisfying.
#4 Winston - I love his mobility. You can jump in, zap some jerks, then jump right back out. Going into angry monkey mode is also the best.
#3 Hanzo - Just a really fun character to play, you can dish out so much damage with those arrows - he's a sniper for people who don't like to play snipers. Climbing walls is awesome and the sonic arrow ability is really useful for the whole team.
#2 Pharah - Pick an area and fill it with rockets. Oh, and she can fly. What's not to like?
#1 Lucio - Everything about Lucio is fun. He can move SO FAST and can ROLLER BLADE ON WALLS. His weapon is also pretty decent and you can knock jerks off cliffs. And, of course, he provides effortless healing. If I ever really feel like I'm letting my team down I just switch to Lucio and know I'm doing some good.