First consider the difference between a 'truly' won position vs a 'theoretically winning' position. By that I mean - a position that is within your own abilities to convert to a win, in a way you can already see, vs a position that seems like it 'should be winning'. You see that stockfish says the position was -3.1, but at your rating level, -3.1 isn't 'truly' won - first of course because you point out that you can't see how to convert it, and second simply because at your current level, it would be very natural to overlook a tactic that you or your opponent could perform with a larger impact than a 3 point material swing.
So move away from calling a position like this 'won'; it could lead you to let your guard down. At the same time, a 3 point advantage 'should' be enough to convert to a win with perfect play, in most cases.
So what gets in the way of you converting this 'theoretically winning' position to a 'truly won' position? Complexity. Particularly at your level of play, but really in all levels of chess, complexity and asymmetry is an advantage to the player on the backfoot.
Imagine an endgame where you have a rook and nothing else, and I just have a king. This should be a 100% won game (and if you don't consider that completely won, work on your endgames, so that you can convert a win in any circumstance where your opponent has only a bare king, and you have a minimum of material). Now now add 2 pawns and a knight for each of us to the board. Where before you would be able to easily slide your rook away from my king and make the mechanical advance that leads to checkmate, now you need to be cautious - are my pawns able to make a break for the 8th rank? Can my knight fork your rook and king? Is your knight trapped by the position of your own pieces? **Complexity has created the opportunity for you to make a mistake, and the same "5 point material advantage" of an extra rook is not so straightforward to convert to a win.
So reduce the complexity. Trade everything down until you have a rook and I have nothing. You indicate this is what you're trying to do, but that your trades are 'refused'. You will need to become better at 'forcing' trades. If you fork my knight and king with your knight, and your knight is protected, you have forced me to take your knight. Simply moving your knight in view of mine to 'tempt' me to take it requires me to choose to do so - as you rise in your chess level, your opponents will more often have their own plans, and you should never rely on someone 'being bad enough that they will play the way I want', always try to play in a way that doesn't require mistakes on the part of your opponent.
And reduce the asymmetry. Imagine you have a rook and 2 pawns, and I have a rook. Because we both have the same major piece, I can't attack your rook in a way that your rook can't attack back. Tactics might be possible on my part (skewering your king with your rook behind, as an example), but mostly your position is similar (but better) than mine. Asymmetry creates complexity that allows tactics to develop. Imagine instead I have a bishop and 2 pawns, and you have a rook and 2 pawns. From a material standpoint, this is still you being 'two pawns-worth of material' ahead, but now my bishop can attack your rook in a way that you can't immediately attack back, and my bishop also defends my pawns differently - it can become part of the pawn chain if needed, etc. Asymmetry naturally creates complexity, which creates the opportunity for me to prepare tactics, and also makes it easier for you to overlook something on the board.
So your goal when it looks like you have enough material advantage to convert to a win (as mentioned in other answers, the way to know this is to practice your endgames - for example are you confident in your ability to checkmate with a bishop and knight only?) would be as the mid-game winds down, to:
(1) Play defensively. Keep your pieces connected and close to eachother. Being aggressive can be risky, and you no longer need risk to win, you need simplicity. Don't overlook your opponent's threats, deal with them, even if it seems slower than a 'near checkmate' that you can't quite calculate but you think is probably there. Keep in mind that for a sub ~1600 rated player, the most immediate improvement to your play will likely be just to not 'drop' / 'hang' pieces. Simply by defending all your pieces, you will be doing something that your opponents are not always doing.
(2) Simplify. Force trades of material. Reduce asymmetry.
(3) Watch for potential pawn breaks, on your side and the opponents. 2 connected pawns on the 6th rank are worth about as much as a rook, so don't ignore the threat of promotion, even if you feel you have a material advantage.
(4) Keep your opponent's king "out of the game", by pushing it into a corner, especially preventing it from approaching your opponent's connected pawns. A king next to 2 pawns on the 6th rank is quite frightening indeed.
(5) When safe bring your own king into the game. As the material on the board simplifies, the relative power of a king increases, especially if there are no queens on the board, and even more so if there are no rooks on the board. If you're '2 points of material' ahead, but your opponent uses their king and you don't use yours, you will be unlikely to convert to a win.
(6) Checkmate using simple principles once the dust has settled. Really learn your endgames so that you are confident in all simplistic checkmates (especially with a single rook, and a single pawn - sometimes a single pawn is winning, sometimes it is a draw, you absolutely must learn how to win with a single pawn, because that's how a 1 point material advantage converts to a win).