The value of acquiring players in trades was on display Thursday night. The 49ers are a better team with Emmanuel Sanders; without him, maybe they don’t win this game. The Cardinals, meanwhile, got 162 yards out of Kenyan Drake; without him, they wouldn’t have been competitive.

Two teams have made it to the halfway point of the season at 8-0, and they both added wide receivers at the trade deadline. The Patriots traded a second-round pick for Mohamed Sanu. The 49ers gave up less than a third for Sanders (the trade included their third, but they picked up 50-60 spots worth of draft position later by swapping their low fifth-round pick for Denver’s high fourth-round pick).

Sanu is two years younger, with more cost control (he’s signed through 2020, while Sanders will be a free agent at the end of the season) but on the field, Sanders looks like a much better player. It’s clear after last night that he’s a significantly better receiver than anybody else the 49ers have. Sanders and Jimmy Garoppolo appeared to have been working together for years on one downfield ball that was thrown long before Sanders came out of his break. Two weeks in a row they’ve featured Sanders on short touchdowns at the goal line – there’s a trust there that Garoppolo doesn’t have with his other wide receivers.

The 49ers have scored multiple rushing touchdowns in over half of their games. If more opponents can contain that running game (forcing them to score more through the air) Sanders could be a nice player in the second half of the season.

Other teams were reportedly interested in trading for Drake, including the Lions, and that deal right now is looking pretty sweet. Arizona will give up a sixth- or fifth-round pick, depending on how Drake performs. He looked very comfortable in this offense last night, running for 110 yards and a touchdowns and catching 4 balls for another 52. He also caught a 2-point conversion.

Like Sanders, Drake will be a free agent at the end of the season. With the Cardinals being a last-place team, some might have figured they should be sellers rather than buyers at the trade deadline. But I like this deal a lot. It gives them options. It gives them a chance to work with Drake for a half a season, seeing how he fits into their system. They can mull over in February and March how they want to build their roster. I would figure the Cardinals will want to head into 2020 with at least two running backs that they would be comfortable using as starters, and Drake could be one of those guys. After getting a chance to work with him, they might decide he’s a better fit in their offense than either David Johnson or Chase Edmonds.

POSITION BY POSITION:

Jimmy Garoppolo:
San Francisco came into this game having scored 4 more touchdowns rushing than passing. It had scored multiple rushing touchdowns in five of its last seven games. Arizona’s defense was the opposite, with over 80 percent of touchdowns scored against this defense coming on passes. The latter trend won out on this night, with all 4 touchdowns coming on passes. For the season, that pushes the Cardinals up to 24 TD passes versus only 4 TD runs. Arizona has allowed 5 more touchdown passes than any other defense.

Garoppolo looked good on this night, finishing with a 136.9 passer rating. One touchdown dropped. The most impressive throw came on the sideline route to Sanders, where the ball had to leave his hands before Sanders made his break. That’s the kind of throw a lot of quarterbacks can’t or won’t make. There are quarterbacks who want to see the receiver open before they make the throw. Mariota, Trubisky, Alex Smith, and maybe half of the other starters in the league. For at least one play, Garoppolo showed some ability to ascend above that level.

Kyler Murray:
As expected, pass protection was a problem. Murray took 3 sacks and was under pressure all night. If not for an unlikely 88-yard touchdown in the fourth quarter, Murray could have finished well under 200 yards. He had a Pick Six dropped. I wouldn’t have any interest in starting Murray when these teams play again in Week 11.

49ers running backs:
I didn’t think Matt Breida or Raheem Mostert would play. They didn’t practice at all on Tuesday. But they were in uniform and looked fine. Breida was a lot more effective than Tevin Coleman, who was held under 2 yards per carry. The 49ers don’t have a back who’s suited to play full-time. I would expect that in most of their remaining games, both Coleman and Breida will get double-digit touches, with Mostert mixed in as a third guy.

The 49ers also have Jeff Wilson, who was used as a goal-line back earlier in the year when Coleman was hurt. In this game, I saw Wilson on the field for just a couple of plays. They brought him in for the key play at the 1-yard line with 4 second left in the first half. Wilson was stopped short of the goal-line, but Arizona had called a timeout, nullifying the play. Wilson caught a pass in the second half – he’s definitely their 4th-string tailback.

Cardinals running backs:
I will be posting updated dynasty rankings for running backs tomorrow, and the decision-making won’t be easy for the Arizona running backs. David Johnson, Chase Edmonds, Kenyan Drake. How do you order those guys? Drake made himself some money last night – either from the Cardinals or some other team.

Both Johnson and Drake were third-round picks. Johnson is more proven, of course, with a 2,000-yard season on his resume. But Drake is two years younger, faster, and hasn’t really had a chance to show what he can do. He spent the first eight weeks trapped in Miami, and he’s been handcuffed to Adam Gase for the previous three seasons. Edmonds is a worthy back as well, with two years left on his rookie deal.

With Johnson and Edmonds sidelined by injuries, Zach Zenner and Alfred Morris were both active for Arizona last night, but I doubt that either of them will be on the roster at the end of the month.

49ers receivers:
Emmanuel Sanders looks like he’s going to be the headliner receiver for San Francisco. With his experience, he’s a level above the other receivers they have. After him, I think they’ll use a rotational approach with their other guys.

Deebo Samuel passes the eyeball test. He’s more athletic than most wide receivers. If we’re talking dynasty, he’s the first San Francisco receiver I would select – I think it will happen for him. (Sanders is 32 years old.) But Samuel needs to develop. He dropped a touchdown in this game and nullified another play with a false start. He made a sideline catch that would have been nullified by a challenge (he was bobbling the ball). He’s started each of the last two games, playing a lot more than their other young receivers.

Dante Pettis, Kendrick Bourne and Richie James all got on the field for fewer than a third of their plays in this game. Pettis and Bourne each scored, but it was the only target of the night for each guy. They can’t be counted on for much of anything in 2019, I think.

Marquise Goodwin is the wild card here. He’s missed the last two games after attending to some kind of off-field personal problem. He returned to practice this week, so I thought he would play, but he was inactive. He was a starter prior to Week 8. When he returns, I think it will be as one of those supporting, rotational players – a guy who catches a long touchdown once in a while.

Cardinals receivers:
I don’t have much interest in any of the Arizona pass catchers. I don’t see anyone who can be counted on.

Larry Fitzgerald went over 100 yards in each of his first two games. Since then, he has averaged 38 yards, with one touchdown in seven games.

Christian Kirk had a team-high 11 targets in Week 8, but just 2 catches for 8 yards in his one (on 5 targets). Both he and Fitzgerald were on the field over 95 percent of their plays, but just not enough looks or production.

Damiere Byrd has been their third guy for most of the season, but he was a healthy scratch for this one. Instead, they demoted him behind KeeSean Johnson (who had been a healthy scratch last week). Johnson had a bad drop in this game but later caught a touchdown.

Pharoh Cooper has been mostly a kick returner during his four years in the league, but he’s been worked into this offense (on the field for about a third of their plays in three of his last four games). Trent Sherfield gets out there some. Andy Isabella hasn’t played much so far but came up with an 88-yard touchdown in the fourth quarter of this game, so I’m sure he’ll play more going forward. Isabella, recall, is the receiver they selected in the second round of the draft; he was super productive at UMass and ran a 4.31 at the combine. But I didn’t think he looked like a 4.31 guy on his touchdown – there were guys gaining on him. Isabella is fast, but he’s not uber-fast. If you were in a dynasty league and had to pick a second-round receiver out of this game, Isabella isn’t one of the first two you would chose (you would definitely select Deebo Samuel and Christian Kirk before him).

49ers tight ends:
George Kittle injured his knee on the first play, and it looked like it might be a season-ender – his knee got bent backwards. But he returned for the second series and had a good game. Budda Baker swatted away the first two passes thrown his way, but Kittle caught all 6 of the others, for 79 yards and a touchdown.

Kittle was bothered by the knee throughout the game. He was limping around, needed to be helped up and eventually left early. Would not be surprising, I think, if follow-up tests reveal some kind of damage. I would expect the knee might affect in upcoming games. If Kittle ends up being sidelined, Ross Dwelley would then become a viable tight end in typical 12-team formats. Dwelly caught all 4 passes thrown his way in this game.

Arizona tight ends:
The Cardinals snuck Charles Clay downfield for a couple of balls last week against the Saints. More commonly, they hardly use their tight ends at all, and that’s the way it played out in this one. Clay and Maxx Williams each caught 1 pass.