Matt Cassel's three touchdown passes included a trick play that caught San Francisco completely flat-footed and the surprising Kansas City Chiefs remained unbeaten Sunday with a 31-10 rout of the hapless, winless 49ers.

After starting 0-4 a year ago and winning only 10 games the previous three seasons combined, the Chiefs are 3-0 for the first time since 2003.

The offense of the 49ers (0-3), which rolled up 417 yards Monday night against New Orleans, managed only a field goal until the final play from scrimmage.

Cassel was 16 for 27 for 250 yards. He connected with Dexter McCluster on a 31-yard run-and-catch and fired a perfect 45-yard strike to a wide-open Dwayne Bowe off a fake end-around.

Rookie tight end Tony Moeaki put Kansas City on top 24-3 late in the third with a great falling down, one-handed catch of Cassel's 18-yard toss.

It's the second time in three games San Francisco has been dominated, and is sure to cause unrest in the Bay Area where many expected the 49ers to contend.

Jamaal Charles and Thomas Jones, who have become the center of a running back controversy among Chiefs fans, helped K.C. rush for 207 yards. Charles, whose breakaway speed has made him a fan favorite, had 97 yards on 12 carries while Jones had 95 on 19, including a 3-yard scoring run that made it 31-3 with 3:27 left on the bright, sunny afternoon.

The 49ers wound up with 251 total yards, and that included 53 yards on their final two plays. They did not allow the Saints even one sack six days earlier. But the Chiefs' rejuvenated defense under first-year coordinator Romeo Crennel harried Alex Smith all day and held Frank Gore to just 43 yards on 15 carries. Gore did have 102 yards on nine catches.

In three games, the Chiefs have allowed only 14 second-half points.

Kansas City coach Todd Haley's gambling instincts were evident all day. The Chiefs tried an onside kick after their first touchdown, converted a fourth-and-1 from midfield and scored on a trick play in the third period.

Leading 10-3, the Chiefs in a wildcat formation snapped the ball to Jones. He handed the ball to McCluster, who appeared to be taking off on an end-around. But McCluster turned around and tossed the ball back to Cassel.

The quarterback then pulled up and lofted a perfect strike to Bowe, who was all by himself in the end zone as safety Dashon Goldson frantically tried to get back.

The 49ers were plagued by bad field position all game, starting drives at their own 13, 10, 22, 24 and twice at their own 12. They began only two drives beyond their own 28, including once when a Kansas City kickoff went out of bounds. Smith was 23 for 42 for 232 yards. His 41-yarder to Gore on the next-to-last play from scrimmage set up a 12-yard TD strike to Josh Morgan as the final second ticked off the clock.

Brandon Flowers, whose interception return last week gave the Chiefs' their only touchdown in a victory at Cleveland, made several good plays. He jumped in front of a receiver and hauled in Smith's pass at the 49ers 31 in the second quarter and twisted his body around to knock down what probably would have been a touchdown pass in the third.

On the first play after Flowers' interception, Cassel flipped a pass to McCluster in the flat and the rookie sped 31 yards into the end zone, breaking Travis LaBoy's tackle.

Ryan Succop, who had made 15 consecutive field goals and never missed inside the 40, was wide right from 38 yards late in the half. But the Chiefs got the ball right back in good shape when Javier Arenas returned a line-drive punt 19 yards and Succop, as time expired, connected on a 32-yarder for a 10-3 halftime lead.

Joe Nedney had a 51-yard field goal for the 49ers in the second quarter.