Final score: Arizona State 27, Cal 17
4:06 p.m. - Wow, it takes a review but the officials give Keenan Allen the 10-yard touchdown catch from Zach Maynard. Allen's right foot barely scraped the end zone before his left foot came down out of bounds.
Arizona State 20, Cal 17 with 9:33 left in the fourth quarter
3:45 p.m. - Vincenzo D'Amato hits a 35-yard field goal, as the Bears are unable to capitalize on Keenan Allen finally getting behind the Arizona State defense.
Arizona State 20, Cal 10 with 1:12 left in the third quarter
3:35 p.m. - Arizona State gets a field goal from Alex Garoutte, and Cal's season is in major jeopardy.
Arizona State 20, Cal 7 with 4:28 left in the third quarter
2:50 p.m. - First half stats of note:
Zach Maynard is 3-of-8 for 63 yards, no touchdowns, no interceptions, and has been sacked three times.
Isi Sofele has 89 yards and a touchdown on 12 carries, but that lost fumble to end the half was a killer.
Keenan Allen has one catch for 44 yards.
Brendan Bigelow has no touches on offense, while Arizona State's equally electric freshman running back D.J. Foster has 28 yards on three receptions and 10 yards on one rush.
Cal is 1-of-6 on third down, and has 139 yards of total offense on 28 plays. Arizona State is 6-of-12 on third down, and has 184 yards of total offense on 49 plays.
Taylor Kelly is 14-of-25 for 121 yards and two touchdowns, while the Sun Devils have only 63 yards rushing on 24 carries.
2:38 p.m. - Isi Sofele loses a fumble, and Arizona State responds with a 37-yard touchdown drive, scoring on a nine-yard pass from Taylor Kelly to Kevin Ozier.
Arizona State 17, Cal 7 at the end of the first half
2:15 p.m. - Cal's inability to finish tackles in the backfield allows Arizona State to rip off a couple big gains, resulting in a 28-yard Alex Garoutte field goal to retake the lead.
Arizona State 10, Cal 7 with 6:08 left in the second quarter
1:55 p.m. - Keenan Allen catches a quick slant and races 44 yards for his longest grab of the season, sparking a three-play, 76-yard touchdown drive capped by Isi Sofele's 24-yard scoring run.
It was the longest catch of the season for Allen, and only his third of 20 yards or longer this year.
Cal 7, Arizona State 7 with 13:06 left in the second quarter
1:48 p.m. - Cal's offensive line is being abused by Arizona State, allowing seven tackles for loss and three sacks in the first quarter and trail 7-0.
1:28 p.m. - Cal can't get off the field on third down, losing containment as quarterback Taylor Kelly scrambles to move the chain. Then the Arizona State offense clicked into gear, with a nice 28-yard catch from freshman running back D.J. Foster out of the slot, then a 1-yard touchdown pass from Kelly to tight end Darwin Rogers.
Arizona State 7, Cal 0 with 7:11 left in the first quarter
1:18 p.m. - After a season-best 32-yard run from Isi Sofele starts the drive, Cal's first possession goes nowhere and punts the ball back to Arizona State.
1:10 p.m. - Viliami Moala started at nose guard, his first career start.
12:55 p.m. - Avery Sebastian has been announced as starting safety opposite of Josh Hill today.
12:45 p.m. - Looks like Michael Lowe will be replacing Alex Logan at the safety spot opposite of Josh Hill, as Lowe and Hill worked together throughout pre-game warmups.
Logan has been on the wrong end of a lot of big plays this season, resulting in Lowe and Avery Sebastian getting extra reps in practice.
At right tackle, Matt Summers-Gavin (knee) again went through drills, as he did last week at USC. Now whether that actually means anything is still to be determined.
11:55 a.m. - Good morning from Memorial Stadium, as Cal returns home after a disheartening two-game road trip as difficult as imaginable. Already sitting at 1-3 and still having to play Oregon, along with games against rival Stanford and much-improved UCLA and Oregon State, this could be the turning point for head coach Jeff Tedford, as I address in my pre-game preview below:
Dan Greenspan is the publisher of Cal Sports Digest and writes about the Pac-12 for Fox Sports Next. Follow him on Twitter @DanGreenspan.