Phil Dawson improved to 15-for-15 on the year with three second-quarter field goals. He was good from 32, 28 and 29 yards.
The Browns defense forced two punts after allowing long touchdown drives on both Baltimore possessions of the first quarter.
Rookie running back Trent Richardson picked up where he left off last week, when he rushed for a career-high 122 yards in a win over the Chargers.
Richardson was given the ball in the second quarter and went to work. He carried 14 times for 76 yards in the half.
The Browns got the final Dawson field goal with three seconds left to cap a nice drive to end the half. The Browns got the ball on their 39-yard line with 1:03 and a timeout left.
After a 2-yard Richardson that drew boos, Weeden went 4-for-5 for 48 yards, including a 19-yard out to Travis Benjamin to set up the short kick.
Weeden was 11-for-18 for 129 yards in the half. He was hurt by three drops, including one by Josh Gordon on a long post. Weeden also seemed in a hurry to get rid of the ball, especially on third down. He had time to throw, but repeatedly dumped the ball short.