Wash all vegetables thoroughly. Rinse the fish and pat it dry with paper towels or wait for it to dry.
Chop the dill into pieces. Mince the shallots and garlic. Julienne the scallions and ginger. Peel 2 tomatoes and cut them into small pieces. Cut the third tomato into wedges.
Season the fish with chili powder and ground pepper on both sides.
Add cooking oil to a heated pan. Put the mackerels and half a garlic head into the pan. Fry them for 3 to 5 minutes or until golden on all sides over medium heat. Set aside.
Fry the minced shallots and garlic until fragrant. Add the ginger to the pan, then stir in the tomato pieces. Stir well. Pour in water and season with sugar, soup powder, salt, fish sauce, and oyster sauce. Put the lid on and cook for 2 to 3 minutes on low heat. Once the tomatoes are tender, add the mackerel to the pan. Spoon the sauce all over the fish.
Next, add the tomato wedges, dill, and ½ head of fried garlic to the pan. Cook for another 5 to 10 minutes on low heat, then turn off the stove.
Enjoy right after cooking or while the fish is still hot.