I encountered a similar problem in a game of mine when defining collision physics for grenades my character throws. I found a solution that could fit your needs.
When an object (e.g. a ball) moves along its trajectory, whether or not affected by gravity, it moves from point A to point B every frame (depending on the framerate you wish, you have to deal with delta timing), giving us a hint about its velocity. If no collision occurs when moving from A to B, we just place our ball in its new position, according to kinematics (first case in the image).
If at least one collision is detected, we find a position C (we don't mind if it's a 2D or 3D model - it works the same) which is the ultimate position along vector AB where our ball doesn't collide with anything else. Though, there's a small distance missing because our ball shall travel AB distance but actually it did AC, that is smaller (second case in the image). Then we calculate two values: the remaining distance (CB = AB - AC, you just apply Phythagoras' theorem when working with x and y values) and the new direction our ball shall move towards.
If motion from A to B is computed by a script (case 1), iterating it first on AC and then on CB (figure 2) will make the ball still travel AB distance, this time according to collision detection. Having more collision points for the same path shouldn't be a big deal, we just iterate our moving script three, four, five times as we need. You can make an iterative or recursive version of this algorithm.
In my personal project, I use an iterative script which does the following operations in order:
- If AB > 0, check collisions between A and B
- If no collision is detected, move object in position B
- If collision is detected, find point C and move object in point C
- Calculate distance CB and new direction angle (subscript for this one)
- Go back to 1 using new distance and new direction angle
Hope that helps.
EDIT: If your object DOES collide with two distinguished object at the same time, get the new direction angle as vector sum of the two hypotetical angles you would compute.