also known as: Columns for 3x3x3, PCMS variant
This is something of a variant of Kenneth Gustavsson's PCMS method. I tried to optimize it a little bit to create a method that could be used with relatively few extra algorithms. Because it differs in a few key ways, I've decided to write it up.
The first step is to create four F2L pairs by themselves, without worrying about the cross or centers. Don't think of this as a Fridrich kind of problem, but rather as a blockbuilding kind of problem. In addition to what's free in a Fridrich solution, you can also use the M and S layers, which means moves such as r U r' are totally fine. I suggest trying to plan out 2 pairs in inspection. The SpeedSolving wiki page for Gustavsson's PCMS method has a good explanation of this step, and a few worked-out example solves.
In this step, you just have to orient the last layer corners, without affecting the four pairs. There is a lot of freedom for this, so it's easy to find algorithms for each of the 7 non-solved cases. I suggest choosing your favorite OLL algorithm for each one, noting that the edge orientation doesn't matter. Singce this is a fast algorithm step, you can lookahead to the next one.
This step is a little involved and tricky. You want to solve the centers, insert the four bottom edges, and make sure the top edges are oriented too. Almost all of this will be done using moves of the M, S, and U layers. I really recommend inserting three of the bottom edges (while fixing the centers), and then solving the last one while orienting the top layer. That last step can be easily done in one look - Doug Li provides a set of algorithms.
As for those first three edges, S moves are hard to perform rapidly, so you should completely avoid them if possible. I suggest trying to use only M moves, while minimizing the rotations as much as possible. Here's one way to do this: first, pair up one bottom-layer edge with its middle-layer center, and insert it. Then, if the remaining edge isn't in the bottom-left or bottom-right slots, insert that one too. Then, do a y/y' rotation and pair and insert either one or two of the remaining edges (depending on how many are already solved), which should solve the centers and bring you to the point where you can do one of the above algs. The worst-case scenario here is where you can only do one edge in the first part, but the bottom-back slot holds one of the two edges you want for the second part. In this case you'll need to bring it into the top layer using something like M U M' (and make sure to bring one of the top-layer edges into that slot). If you can notice that situation during the first part, you should do it then, because if you don't notice it until later you will have to waste two rotations.
This is the same as the last step of Fridrich and many other methods. There are 21 total cases, almost all of which can be done very fast, so it's certainly worth it to do this in one step. I would say the best page for this step is the one on the SpeedSolving wiki, which has a huge number of algs for each case, so you can find the one that feels most comfortable for you.