First, you want to Telegraph it. Them being big is one thing, but bigness in many systems doesn't mean all that much.
Are there any foes that could be on either side that the players have fought? Monsters or whatever?
Use the easy defeat of ridiculous numbers of those monsters as a sign that this is out of scale.
Other things, like their blows causing large things to crumble -- mountains, cities, rivers, lakes, etc -- can also help. But direct comparison with something they struggled to defeat may be best.
The fight should be background to what the players are doing. Little is more boring than watching the DM narrate a combat you don't get to participate in. But treating the fight as a set of natural disasters that have to be delt with works.
You cited the unprotected crystals. But suppose there is something that can help the fox, but is somewhat fragile (prior to deployment). The fox, if it directly goes after it, would telegraph to the oni that it was important. On the other hand, if the insignificant insects go after it, the oni is busy focusing on the fox.
Or there can be something they value that is imperilled by the fight. Why is the fox fighting the oni? Is the fox defending a particular tree or grove of trees or somesuch? You typically force a foe to battle by threatening to do something they don't want you to do. Protecting it, or resuing it, becomes something the characters can do.
If the fight occurs over a period of time, you can have the oni and the fox fly into the sky. Thunderclouds roll in, and the fight occurs in, above and below the clouds. Often the two of them fly into a cloud and all you can see is flashes of light.
Only the short periods where they fly into view need narration. These can be spaced out between longer periods where the players are at the center of the action. This general idea, that the fight is obscured, can let you stretch it out and not have it keep the spotlight, without making it seem overly mundane.
Sometimes otherworldly beings have weaknesses due to their otherworldliness. Imagine that the oni can be warded off with magic circles or its true name. For example, the Oni could have a human Wizard ally who knows syllables of the Fox's true name; the Wizard is protected against the Oni by these syllables and the Wizard weakens the Fox. But the Wizard has no special protection against the players; in fact, the Wizard is distracted in helping the Oni beat the Fox.
The players might then be fighting the Wizard's guards (or trying to sneak up on him) and end up fighting a distracted Wizard. If the Wizard's concentration is broken, the Fox gets stronger.
The Oni could turn around and interfere (and may even try to do that), but then the Fox could respond by grappling the Oni (something the Fox had been reluctant to do, as the Oni is stronger but slower than the Fox), risking itself to give the heros a chance to defeat the Wizard.
This can be telegraphed earlier with the Oni getting its hands on the Fox and almost winning; then the Fox gets free, but is wounded. Be explicit in how this is a bad situation for the Fox (as you want to be brief).
Naturally wounds and the fate of the Fox should have immediate and obvious effects on the natural world. If it is fall, the fox getting hurt should cause trees to lose their leaves, and maybe even frost up immediately (as the death/end of autumn is winter).
The by-blows of the fight (not just wounding the Fox changing the world, but chips off the Oni's iron club, or one knocking the other to the ground, or mountains being smashed into active volcanos spewing globs of hot lava, earthquakes, storms, lighting, etc) can provide terrain for the scene the players are engaged in.
The "there is a wizard, kill him to save the world" bit is a bit telegraphed. If your players can be convinced to follow a given plot thread, you could expose that fact only after they first follow another plot. Saving civilians, themselves, or the like; and in doing so, they learn about the wizard.
If you want to avoid a railroad, you can make a matrix of options and consequences. This is like creating a dungeon map -- nodes and paths between nodes.
At each node, write out what the players see, describe some options, and put links to other nodes. Allow for players to walk this encounter graph. Provide meaningful information about what the consequences of each choice (usually meaningful) and have the choices result in different results.
Include "we just run away" and "we attack the Oni" and other seemingly ridiculous choices.
Use some mythic logic. Maybe the Oni's drops of blood turns into monsters. So if they attack the Oni and connect, a swarm of monsters appear. They have to deal with some of them, with the rest running off and wrecking havoc. The Fox meanwhile is trying to defeat the Oni without making the Oni bleed (after the Fox figures it out).