All four lead actors (Natalie Portman, Ashton Kutcher, Mila Kunis, Justin Timberlake) were charming. Portman's Emma was my favorite character. She's brilliant, driven, and the movie doesn't make her sacrifice her career for true love. Justin Timberlake's Dylan was probably my least favorite, for reasons explained later. Therefore, No Strings Attached wins the leads.
Both films have terrific supporting casts. I loved the side characters in No Strings Attached - Emma's neurotic med student roommates, Adam's friends with bad advice, coworker Lucy, and Kevin Kline as one of the worst parents ever. Then Friends with Benefits's came along with Woody Harrelson as a manly, openly gay coworker and Richard Jenkins as Dylan's father with Alzheimer's. Plus, there's tons of brilliant cameos. Friends with Benefits wins secondary characters.
Final category: story. In No Strings Attached, Emma and Adam have been casual acquaintances for years. After beginning a casual sex relationship, Adam clearly wants something more while Emma isn't ready to make an emotional commitment. While both of them come close to screwing things up, neither makes a truly awful mistake. Friends with Benefits's Dylan and Jaime become friends first, then decide to sleep together. They obviously become something more, but Dylan isn't ready to admit it - which causes him to say some very hurtful things about Jaime. She, of course, overhears them. That scene felt cliche and made me dislike Dylan, but overall Friends with Benefits was funnier, more realistic, and had a truer emotional core. Thus, Friends with Benefits wins, by a hair, the better storyline.