The Jets found a way to beat the Bills 27-20 on Sunday despite committing 20 penalties and losing the turnover battle. The Jets need not apologize for the win, but they have to solve some issues if they are going to be a contender.

Here are the winners and losers from Sunday’s game:

WINNERS

MUHAMMAD WILKERSON: This is what you call a complete day: two sacks, six tackles, five quarterback hits and one forced fumble. Wilkerson was a beast for Rex Ryan’s defense, constantly in EJ Manuel’s face and shutting down the Bills’ running game. He jumped offsides a few times, but you can live with that aggression if it translates to this kind of production.

THE O-LINE: The big boys up front are starting to come together for the Jets. They held the Bills without a sack and opened up holes for Bilal Powell, who rushed for 149 yards. The addition of Willie Colon has been a strong one and credit Austin Howard for keeping Mario Williams quiet.

SANTONIO HOLMES: Who saw this coming? A year removed from a foot injury that cost him most of the 2012 season, Holmes looked like his old self. He caught the game-winning, 69-yard touchdown from Geno Smith and made big grabs all day long. Holmes has a remarkable ability to not tip off the defensive back the ball is coming by keeping his hands low until the last second. If Holmes can regain his 2010 form, this offense will have much more firepower than anyone forecasted.

LOSERS

KYLE WILSON: Brutal. Wilson lost his cool in the fourth quarter and almost cost his team the game. Two consecutive personal fouls (five penalties overall) were enough to keep the Bills offense moving on their game-tying drive. Wilson was benched to regain his composure and later came back into the game. Four years into his career, the Jets can’t rely on Wilson in a big moment. He needs to clean it up.

VLAD DUCASSE: Wilson’s five flags were the only thing that overshadowed Ducasse’s four penalties. Ducasse has played well this year and had the best game of his career a week ago. His blocking was strong Sunday, but he can’t kill the offense with penalties. Holding and false starts have been a problem for him whenever he’s played in the past. It can’t happen.

CHRIS IVORY: The risk when the Jets traded for Ivory was he could not stay on the field. That scouting report looks right. Ivory re-injured a hamstring Sunday, and who knows how long he’ll miss? The injury cost him most of training camp and has bothered him in the past. In his absence, Powell had a career day. I wonder whether Ivory will every become the every-down back the Jets hoped for.