Dortmund defeat Schalke in derby
It was the fourth straight defeat and the worst start to a season for big spenders Schalke, leaving the runners-up of last season anchored at the bottom of the table.
They finished the game with 10 men after a second booking for defender Nicolas Plestan.
Japan's Kagawa, one of the Bundesliga's revelations after Borussia bought him for 350,000 euros from the Japanese second division, struck from close range in the 20th and 58th minutes.
Robert Lewandowski added a third goal late in the game to lift Borussia to third place on nine points.
"This is my worst day at Schalke," coach Felix Magath told reporters. "I have never experienced such a start.
"The team is insecure and the defeats have taken their toll. I have never seen the team like that."
Mainz lead the standings on 12 points from four games with Hoffenheim second on 10 after their 2-2 draw against Kaiserslautern on Saturday.
On a day of big Bundesliga rivalries, Hamburg substitute Mladen Petric volleyed a goal from 16 metres with two minutes left in the game to rescue a 1-1 draw against city rivals St Pauli and lift Hamburg to fifth place on eight points.
Bayer Leverkusen drew 0-0 with Nuremberg but had striker Stefan Kiessling taken off with an ankle injury. Team officials said the Germany international could be out for several weeks.
Champions Bayern Munich, who have not scored in the Bundesliga since August 20, drew 0-0 at home against Cologne on Saturday and are in ninth place on five points.
Borussia, who hit the crossbar three times, outplayed Schalke, who lost their Champions League opener in mid-week, and the visitors came close when Neven Subotic hit the bar after 12 minutes.
Dortmund kept up the pressure and Kagawa got a deserved goal in the 20th minute, dancing around three defenders before beating Neuer with a deflected left-footed shot.
With Schalke's defence in disarray, Dortmund could have added another just before halftime when Kevin Grosskreutz hit the bar with a cross and Subotic twice saw his rebounds saved.
Kagawa took advantage of Schalke's poor defence to tap in a Jakub Blaszczykowski cross in the 58th minute for his third goal of the season.
Schalke's big-name strikers, Dutchman Klaas-Jan Huntelaar and Raul, were largely shut out with the Spaniard choking under pressure from defender Mats Hummels.
Lewandowski headed in Dortmund's third in the 86th before Huntelaar struck three minutes later to cut the deficit with his first goal of the season.