Tobias Harris was everything Detroit needed on offense. Stanley Johnson was everything Detroit needed on defense. Together (and with the help of teammates) they formed like Voltron to overpower the Charlotte Hornets in a 102-90 win at Little Caesars Arena.

Harris was back in the starting lineup after spending most of last season coming off the bench and looked like he wanted to put his stamp on the team right away. I don’t think Stan Van Gundy will bring him off the bench anytime soon. Harris was scorching hot from all over the floor, including 19 first-half points on 8-of-10 shooting. He also added a dagger 3 to stop a late Charlotte surge.

Harris’ polar opposite was Johnson, who had the kind of game only Ben Wallace fans could love. He was 0-13 from the field including 0-of-6 on 3s, but he did a million things to help lead Detroit to victory.

Johnson moved the ball, deflected passes, cut off driving lanes, talked on defense, grabbed four boards to go with four steals and was a straight up pest all night (to go along with his two points). For a guy to miss 13 shots and still play a game-high 40 minutes you know some excellent defense was involved.

Another highlight of the night was a surprising rotation coming from Van Gundy. SVG was cagey about his starting lineup until tipoff and ended up going with the conventional look of Andre Drummond, Harris, Johnson, Avery Bradley and Reggie Jackson.

Very surprising was that two of the five players who came off the bench were Eric Moreland and Henry Ellenson. It seemed that Van Gundy didn’t want to risk Boban Marjanovic getting caught flat-footed on defense against Dwight Howard and any small-ball centers for Charlotte.

With Moreland and Leuer splitting most of the reserve center minutes, Henry Ellenson got some serious run at power forward. The second-year player rewarded his coach’s trust with 14 points and four rebounds in 16 minutes. He was 2-of-4 from 3.

Another big question of the night was just how Jackson would play after a poor preseason and a disastrous prior season. Jackson seemed a tad rusty but played better as the game went on.

He got a few of his patented teardrops to fall, sliced through defenses to get a couple good looks at the rim and dished eight assists to go with zero turnovers. Bradley, meanwhile, was an efficient 7-of-10 and played quality defense even as he had to battle foul trouble and generous calls granted to Charlotte’s Kemba Walker.

Langston Galloway played 25 minutes and looked like a born bucket getter. He was aggressive with the ball in his hands and scored 16 points off the bench.

Finally, there was Drummond. Dre also struggled with foul trouble and had a mostly forgettable first half. But he was able to stay more engaged and on the floor in the second half. Most importantly, he was 2-of-2 from the free-throw line and his shot looked good.

If you’re looking for possible red flags there was still plenty to be concerned about on the offensive end overall. Ish Smith and Jon Leuer played hard, especially on the defensive end, but combined to go 4-of-15 from the floor. There were also long stretches when the bench units couldn’t score a point to save its life.

That shouldn’t be too terribly surprising as Smith is a point guard who needs to develop chemistry with his running mates. Smith is no scorer so he needs to learn how and when to push the pace and his teammates need to learn how to find the open seems in the defense. Often tonight things just got cluttered.

The Pistons only shot 42.7 percent from the floor but were ahead most of the night thanks to an energy and peskiness on defense that was all but non-existent last season. That’s not a surprise after an offseason that saw the additions of Bradley and Galloway and an expanded role for Johnson.

Detroit outscored Charlotte in the paint 44-30, had a +19 margin in points off of turnovers and a 12-0 edge in fastbreak points.

It’s the kind of effort Van Gundy begs for, and a performance that is fun to watch and often leads to wins. More of this and it will be an awfully nice inaugural season at Little Caesars Arena.