Brandon Weeden strengthened his case to start. All Browns coach Rob Chudzinski needs to do is make it official.

Weeden threw two touchdown passes to Jordan Cameron and perhaps ended any more discussion about a quarterback competition in Cleveland, leading the Browns to a 24-6 win over the Detroit Lions on Thursday night.

Weeden connected on TD passes of 10 and 5 yards to Cameron in the first half as the Browns (2-0) opened a 17-0 lead. Weeden finished 8 of 12 for 117 yards. In two weeks, he's 18 of 25 for 229 yards and three TDs.

Browns running back Trent Richardson made his NFL exhibition debut and gained 33 yards on six carries, showing some elusiveness and power.

Quarterback Matt Stafford completed 11 of 16 for 74 yards for the Lions (1-1), but was without superstar wide receiver Calvin Johnson, who sat out with a bruised knee.

Detroit rookie kicker Havard Rugland, the Norwegian Youtube sensation, made a 33-yard field goal in the third quarter. He has converted all three tries during the preseason.

The Browns were hoping Weeden could build off last week's strong performance — 10 of 13, 112 yards — in the opener against St. Louis, and the second-year QB did just that.

Weeden threw his first TD pass to Cameron in the first quarter, found his tight end again for a score in the second and made several other strong throws. He hooked up with Josh Gordon on completions of 34 and 23 yards and threw a 27-yard strike to Cameron, who made a leaping catch, which helped erase the memory of him taking Weeden's pass off the facemask a week ago.

On Tuesday, Chudzinski would not commit to a starter for Week 1, saying the competition between Weeden and backup Jason Campbell was "still close."

If it was, it's not anymore.

Weeden led the Browns on three scoring drives in the first half before turning things in the second quarter to Campbell, who went 12 of 14 for 106 yards and one TD.

"We did some good things," Weeden said. "I don't think we had any penalties. I know we didn't have any problems with communication. We have to keep building off of it and continue to build and go forward."

It wasn't all positive for Cleveland. The Browns had five players injured, including starting right guard Jason Pinkston (ankle) and rookie kicker Brandon Bogotay (groin). Also rookie linebacker Barkevious Mingo, the team's first-round draft pick, sustained a rib injury in the first half and didn't return.

Running back Dion Lewis was carted off with an injured left ankle and tight end Gary Barnidge hurt his shoulder.

Richardson missed all four preseason games as a rookie last year, when he was coming off knee surgery. The Browns sat their young star last week as a precaution because of a shin injury, but Chudzinski gave Richardson clearance to play earlier this week and he made the most of his two series.

Richardson broke two tackles, made a spin move and got loose on a 17-yard run in the first quarter.

"It was good to get him out here," Chudzinski said. "He took a couple hits and delivered a couple as well."

While Cleveland's offense hummed, Detroit's sputtered — again.

The Lions' starters didn't cross the 50 until midway through the second quarter but had to settle for 48-yard field goal by David Akers.

Detroit's first-team offense hasn't scored a TD in the preseason.

Without Johnson, Stafford didn't have his primary target and Lions coach Jim Schwartz kept the play calling conservative, perhaps not to reveal much to the Browns, who will host the Lions on Oct. 13.

Bush showed signs of being the breakaway threat Detroit has coveted since Barry Sanders retired. The Lions signed him as a free agent to a four-year, $16 million deal in March. He rushed for 15 yards on eight carries, but caught five passes for 44 yards, picking up 18 on a swing pass from Stafford.

Detroit was called for three personal fouls in the first half, including a roughing-the-passer call on surly defensive tackle Ndamukong Suh on Cleveland's first TD drive.

"Poor, poor job stopping the run," Schwartz said at halftime. "Three personal fouls. We couldn't get anything going on offense. It was a poor performance."

Bogotay was supposed to do all the kicking, and looked good while booting a 43-yard field and recording two touchbacks on deep kickoffs. But he appeared to hurt himself on kickoff and was replaced by veteran Shayne Graham, who kicked the final extra point.