I don't know your level, so this may seem too simple or too advanced. Hopefully there's something here to help you.
Improve your ear training. Listen to intervals (start with melodic intervals, then progress to harmonic intervals) and try to determine what they are from their sound. If you google for online ear training, you can find several websites that will play random intervals and ask you to guess what they are. Treat it like a game, and try to beat your previous score! You can start out with just a few intervals (e.g. PU, M3, P5, P8) and add new ones as you become comfortable.
Perform harmonic analysis on sheet music. Hymns and chorales are great for this. Underneath the score, write out the names of each chord. Watch how the voices progress from one chord to another. Realize that not all notes will necessarily be part of the chord -- learn to recognize different types of non-harmonic tones. Also watch out for inversions, where the bass isn't playing the chord root. Depending on your level, you may not need to determine the exact name of every chord, but try to at least determine the root, and whether the 5th is perfect, and whether the 3rd is major or minor.
Once you figure out what the actual chords are in a piece, figure out how they relate to the key. If you see a C chord and and F chord, is it a I IV progression (in the key of C), or a V I progression (in the key of F). Make sure you're familiar with what the main chords are in a scale. For example, in major keys, I, IV, V are major, ii, iii, vi are minor, and vii* is diminished. I want to emphasize this: for the purpose of harmonic analysis, knowing the absolute chord name (e.g. D major) is not as important as knowing it's relative location in a key (e.g. I or IV or V, etc...). Be able to perform this mental translation quickly for any keys you play in regularly.
Now listen back to the piece, reading your harmonic analysis, and listen for the sounds of various chords and progressions. All chord progressions can be thought of as the root of the chord rising or dropping by a second, a third, or a fourth. A rising fourth is one of the most common progressions you will hear.
Or go the reverse direction, and listen without a score, attempting to guess what the chords are. At first, its easiest to distinguish tonic (I) chords vs. non-tonic chords. Then listen to cadences (the chord progressions at the end of a phrase). These often take the form V I, and are easy to recognize. Try to determine whether the chord you are hearing at any point is a major chord or a minor chord. Don't worry about getting all the chords, but try to get as many as you can. A great way to determine chords is to listen to the bass line (since you're a bassist, this shouldn't be a problem) since it will very often emphasize the root of the chord. The goal here is to be able to be able to perform some level of harmonic analysis while listening. This ties directly back to the ear training too.
As for the practical application, once you can tell what chords you are listening to, you can begin improvising around those chords. The details of this will be specific to whatever style you are playing, but arpeggios is probably a good place to start.
EDIT: You also mentioned wanting to harmonize melodies. A lot of the above will help with this. The ear training especially will help, because if you can imagine what the chord you want should sound like in your head, you will be able to identify what chord that is, and know how to play it. Knowing non-harmonic tones will also help you can pick out which notes of a melody are likely to be non-harmonic tones. You also want to look at which chords can be used to harmonize which scale degrees. For example, a ii chord is made of scale degrees 2 4 6, so if your melody contains a 6, you might be able to harmonize it with a ii chord (other options would be a IV or a vi). For each scale degree, try writing out which chords in the scale contain that scale degree.